`
lzqustc
  • 浏览: 211013 次
  • 性别: 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)来判断客户端是否使用了代理来。

分享到:
评论

相关推荐

    Perl获取eth0 ip地址

    用perl实现的获取eth0 ip地址的方法,主要是打开ifconfig读取信息,然后用正则表达式来匹配,从而获取到ip地址,比较简单。

    PERL的TCP 服务器与客户端

    服务器创建一个监听套接字,绑定到指定的IP地址(通常为INADDR_ANY,表示所有可用接口)和端口(如8080),然后开始监听。当有客户端连接时,服务器会接受连接并创建一个新的进程来处理客户端的请求。 对于TCP...

    perl CGI编程基础

    - 客户端信息:REMOTE_ADDR(客户端IP地址)、HTTP_USER_AGENT(浏览器信息)等。 3. **CGI脚本创建** - `use CGI`模块:介绍如何在Perl脚本中引入CGI模块。 - `new`方法:创建一个新的CGI对象,用于访问环境...

    在Perl下编写CGI程序的扩展模块

    Perl是一种强大的脚本语言,常用于web开发中的服务器端编程,特别是通过CGI(Common Gateway Interface)来创建动态网页。CGI程序允许服务器与客户端进行交互,为用户提供实时的信息和服务。在Perl中,CGI模块是实现...

    CGI-Perl实例起步

    4. **环境变量和日志**:CGI程序还可以访问Web服务器传递的一些环境变量,如`REMOTE_ADDR`(客户端IP地址)和`HTTP_USER_AGENT`(浏览器信息)。记录日志是调试CGI程序的重要手段,Perl的`open()`函数可以帮助打开一...

    PERL解析IP地址为所在地

    Perl是一种强大的脚本编程...总之,这个Perl包提供了一种高效且准确的方法来解析IP地址并获取其地理位置信息,利用了QQWry数据库的强大功能。通过理解和掌握相关技术,你可以在各种网络相关的项目中实现类似的功能。

    Perl-CGI.rar_CGI Perl_CGI编程_cgi

    本资源包“Perl CGI轻松进阶_0”很可能是系列教程的一部分,初学者可以通过阅读这些材料,结合实例练习,逐步掌握Perl CGI编程。记得实践是检验和提升技能的最好方式,理论知识与实际操作相结合,才能真正精通Perl ...

    神奇的perl与使用Perl编写CGI程序合集 PDF

    CGI允许服务器运行客户端请求的外部程序,并将结果返回给浏览器。"CGI编程_使用Perl"这部分内容会详细讲解如何用Perl编写CGI程序,包括设置环境、处理HTTP请求、生成动态网页以及错误处理等技巧。通过学习,你可以...

    Perl CGI 轻松进阶(PDG)

    CGI是Web服务器和客户端之间通信的一种标准协议,使得服务器能够执行外部程序(如Perl脚本),并将结果返回给浏览器。Perl CGI结合了两者的优点,让开发者能够利用Perl的强大功能来生成动态内容。 首先,了解Perl ...

    perl cgi

    在Unix或Linux系统中,通常Perl已经预装,而CGI模块可以通过CPAN(Comprehensive Perl Archive Network)获取。在Windows环境中,可以下载ActivePerl并安装CGI模块。 接下来,创建一个Perl脚本,使用`#!/usr/bin/...

    Perl CGI 例子

    Perl CGI(Common Gateway Interface)是一种在Web服务器上执行Perl脚本的方法,允许用户通过Web浏览器与服务器进行交互。CGI是互联网早期动态网页技术的重要组成部分,尽管现在已经被更现代的技术如PHP、ASP.NET和...

    CGI Programming with Perl

    Perl是一种强大的脚本语言,尤其在Web开发领域,它通过CGI(Common Gateway Interface,通用网关接口)扩展了其功能,使得服务器能够处理客户端发送的动态请求。CGI编程是互联网早期动态网页的重要实现方式,尽管...

    Perl_CGI轻松进阶

    本书以生动活泼的口吻详细介绍了Perl-CGI编程技术及如何利用Perl语言编写CGI应用程序,并借此创建动态Web页面。全书着重介绍了Perl语言在Web领域的应用。作者不是枯燥地讲述语言规范,而是通过大量实例由浅入深地...

    使用Perl编写CGI时需要注意的几个问题

    ### 使用Perl编写CGI时需要注意的问题 #### 一、引言 Perl作为一种强大的脚本语言,在Web开发领域尤其是在CGI编程方面有着广泛的应用。随着Perl的发展,它已不仅仅局限于UNIX平台,也被成功移植到了诸如Windows这样...

    转 Perl语言编写的微信客户端框架

    使用Perl语言编写的微信客户端框架,基于Mojolicious,要求Perl版本5.10.1+,可通过插件提供基于HTTP协议的api接口供其他语言或系统调用 插件列表 名称 优先级 当前状态 github作者 功能说明 -----------------...

    Perl_CGI入门

    Perl CGI(Common Gateway Interface)是一种使用Perl编程语言与Web服务器交互的技术,主要...通过阅读Perl_CGI六天入门.chm这样的教程,配合实际编程练习,你将能够逐步掌握这一技术,为今后的Web开发打下坚实的基础。

    Perl CGI 轻松进阶 PDF

    Perl CGI 是一种在Web服务器上运行...通过阅读“Perl CGI 轻松进阶 PDF”,读者可以逐步提升自己的Perl CGI技能,从而更好地构建动态、交互式的Web应用。书中的实例和练习将有助于读者巩固理论知识,增强实际操作能力。

    CGI perl编程(第二版)

    CGI Programming with Perl, 2nd Edition CGI Programming with Perl, 2nd Edition CGI Programming with Perl, 2nd Edition CGI Programming with Perl, 2nd Edition CGI Programming with Perl, 2nd Edition CGI ...

Global site tag (gtag.js) - Google Analytics