`
lzqustc
  • 浏览: 213162 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Perl服务端通过CGI获取客户端ip地址

阅读更多

use CGI;

 

my $remoteip = $ENV{"REMOTE_ADDR"};   --> 客户端IP地址

my $remoteport = $ENV{"REMOTE_PORT"};  --> 端口

my $http_via = $ENV{"HTTP_VIA"};  --> VIA头部

 

可以根据下面方式,查看整个http头部内容:

my $ua = LWP::UserAgent->new();

$ua->timeout(30); 

#$ua->proxy(['http'], "http://$proxyAddr");

 my $req = HTTP::Request->new( GET => $url);

$req->header(@header);

#print(Dumper($req)."\n");

my $response = $ua->request($req);

print($response->decoded_content());  #将打印下面的内容

 

 

        <!DOCTYPE html>

    <html>

      <header>

        <title>????</title>

        <meta http-equiv=Content-Type content=text/html; charset=utf8>

      </header> 

      <body> 1

HTTP_VIA===>1.1 RD2:3128 (squid/2.7.STABLE7)

HTTP_ACCEPT_CHARSET===>utf-8, iso-8859-1, utf-16, *;q=0.7

PATH===>/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

CONTEXT_DOCUMENT_ROOT===>/usr/lib/cgi-bin/

SERVER_SOFTWARE===>Apache/2.4.7 (Ubuntu)

REMOTE_PORT===>40843

MOD_PERL_API_VERSION===>2

SERVER_ADMIN===>webmaster@localhost

REQUEST_URI===>/cgi-bin/check.pl?uid=1

HTTP_X_REQUESTED_WITH===>com.android.browser

SERVER_SIGNATURE===><address>Apache/2.4.7 (Ubuntu) Server at 104.5.10.13 Port 80</address>

HTTP_ACCEPT===>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

SCRIPT_NAME===>/cgi-bin/check.pl

SERVER_NAME===>104.5.10.13

GATEWAY_INTERFACE===>CGI/1.1

HTTP_CONNECTION===>keep-alive

SERVER_ADDR===>104.5.10.13

REQUEST_SCHEME===>http

QUERY_STRING===>uid=1

SERVER_PORT===>80

HTTP_HOST===>104.5.10.13

REQUEST_METHOD===>GET

SCRIPT_FILENAME===>/usr/lib/cgi-bin/check.pl

HTTP_CACHE_CONTROL===>max-age=0

CONTEXT_PREFIX===>/cgi-bin/

DOCUMENT_ROOT===>/var/www/html

HTTP_X_FORWARDED_FOR===>106.6.6.104

HTTP_USER_AGENT===>Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; HM NOTE 1LTE Build/KTU84P)

REMOTE_ADDR===>58.22.61.211

SERVER_PROTOCOL===>HTTP/1.0

MOD_PERL===>mod_perl/2.0.8

IP===>58.22.61.211

Type===>PUBLIC

IS_PROXY===>TRUE1.1 RD2:3128 (squid/2.7.STABLE7) </body>

    </html>

 

可以通过HTTP_VIA(是否存在)或者IS_PROXY(是否包含TRUE)来判断客户端是否使用了代理来。

分享到:
评论

相关推荐

    Ubuntu12.0搭建OCS+GLP.doc

    2. 更改客户端的IP地址,使其能够被OCS服务器发现。 3. 验证OCS客户端能否成功报告到服务器,以及GLPI能否正确显示资产信息。 通过以上步骤,你已经成功在Ubuntu 12.0上搭建了OCS和GLPI,并完成了两者之间的整合。...

    Ubuntu12.0搭建OCS GLP.doc

    2. 安装并配置OCS客户端,设置正确的IP地址,选择不扫描已安装软件、不询问TAG等选项。 通过以上步骤,你将在Ubuntu 12.0环境中成功搭建OCS和GLPI,实现IT资产管理的自动化监控和报告。这种集成方案对于IT部门来说...

    尚硅谷_Nginx.docx

    它可以将这些请求分发给后端服务器集群(服务池),实现负载均衡,有助于应对业务量的增长,节约公网 IP 地址,同时也便于扩展服务器资源。 4. **Nginx 的安装与启动**: - Nginx 的安装需要依赖 pcre、openssl 和...

    bugzilla2.18 安装文档

    - 编辑`/etc/httpd/conf/httpd.conf`,设置`ServerName`为你机器的实际IP地址,例如`ServerName 192.168.5.161:80`。 - 测试配置文件的语法正确性:`httpd –t` - 重启Apache服务:`service httpd restart` - ...

    11 第十一讲 WEB服务器的构建与管理

    - **前提条件**:需要有域名、IP地址,并正确配置DNS。 - **RPM安装Apache+PHP**:将RPM包文件复制到指定目录,然后在终端或图形界面中执行安装命令。 - **启动及测试**:使用`service httpd start/restart/stop/...

    x-scan-v3.3-cn

    原因是x-scanner集成了多种扫描功能于一身,它可以采用多线程方式对指定IP地址段(或独立IP地址)进行安全漏洞扫描,提供了图形界面和命令行两种操作方式,扫描内容包括:标准端口状态及端口banner信息、CGI漏洞、...

Global site tag (gtag.js) - Google Analytics