首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Perl Frontier-RPC调用中获取客户机的IP地址?

如何从Perl Frontier-RPC调用中获取客户机的IP地址?
EN

Stack Overflow用户
提问于 2009-01-21 04:47:13
回答 2查看 1.4K关注 0票数 1

我正在尝试让我的Perl Frontier XML-RPC守护进程知道调用者的IP地址。我不得不说我是Perl的新手,所以这一点可能是显而易见的。我知道Frontier::Daemon继承自IO::Socket::INET,它有一个peeraddr()方法,但是当守护进程不将自己的实例传递给XML-RPC方法调用时,这对我没有帮助。

下面是我的代码,大致如下:

代码语言:javascript
复制
    my $server = Frontier::Daemon->new(
        methods => {
                diff => \&diff,
        },
        LocalPort => 8080,
        ReuseAddr => 1,
    );

然后再往下看:

代码语言:javascript
复制
sub diff {
    return $_[0] - $_[1];
}

如何从“diff”中获取调用者的IP地址?

EN

回答 2

Stack Overflow用户

发布于 2009-01-21 21:07:57

不幸的是,你不能使用Frontier的服务器类来做到这一点。在调用本地过程/方法时,您还没有实际套接字连接本身的任何句柄。

碰巧,能够访问这些信息是我最近在RPC::XML包的服务器类中添加的一个特性。请参阅服务器类文档中的"How Methods Are Called“部分。

票数 1
EN

Stack Overflow用户

发布于 2009-01-21 15:30:30

我同时运行Frontier::Daemon和Frontier::RPC2 (在Apache下)。我不知道使用Frontier::Daemon时如何获取客户端IP,但如果使用Frontier::RPC2,那么Apache环境变量$ENV{REMOTE_ADDR}将包含客户端的IP地址。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/464109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档