(未整理....)

(1)php cli方式下获取服务器ip

[php] 
function getServerIp(){ 
        $ss = exec('/sbin/ifconfig eth0 | sed -n \'s/^ *.*addr:\\([0-9.]\\{7,\\}\\) .*$/\\1/p\'',$arr);      
        $ret = $arr[0]; 
        return $ret; 
    }

function getServerIp(){
  $ss = exec('/sbin/ifconfig eth0 | sed -n \'s/^ *.*addr:\\([0-9.]\\{7,\\}\\) .*$/\\1/p\'',$arr);  
  $ret = $arr[0];
  return $ret;
 }

(2)php cgi方式下 获取 客户端ip和服务器端ip

[php]

[php]
PHP获取客户端和服务器IP地址的函数写法如下: 
[code=Php width=600px]/**
* 获取客户端IP地址
* @return string
*/  
function get_client_ip() {  
    if(getenv('HTTP_CLIENT_IP')){  
        $client_ip = getenv('HTTP_CLIENT_IP');  
    } elseif(getenv('HTTP_X_FORWARDED_FOR')) {  
        $client_ip = getenv('HTTP_X_FORWARDED_FOR');  
    } elseif(getenv('REMOTE_ADDR')) { 
        $client_ip = getenv('REMOTE_ADDR');  
    } else { 
        $client_ip = $_SERVER['REMOTE_ADDR']; 
    }  
    return $client_ip;  
}    
/**
* 获取服务器端IP地址
* @return string
*/  
function get_server_ip() {  
    if (isset($_SERVER)) {  
        if($_SERVER['SERVER_ADDR']) { 
            $server_ip = $_SERVER['SERVER_ADDR'];  
        } else {  
            $server_ip = $_SERVER['LOCAL_ADDR'];  
        }  
    } else {  
        $server_ip = getenv('SERVER_ADDR'); 
    }  
    return $server_ip;  

[/code] 
客户端IP相关的变量  
1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP。  
 
2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可伪造。  
 
3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用户是在哪个IP使用的代理,可能存在,可以伪造。  
 
服务器端IP相关的变量  
1. $SERVER_NAME,需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。  
 
2. $HTTP_SERVER_VARS["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。  
 
3. $_SERVER['LOCAL_ADDR'] 、$HTTP_SERVER_VARS['LOCAL_ADDR'],测试中,未获得任何结果(测试环境PHP5)。 
完整的获得IP类 
[code=Php width=600px]01./**   
02. * Get Client/Server IP    
03. *    
04. * @author  Yaron (http://yaron.org.cn)   
05. * @version  0.1   
06. * @package     
07. */      
08.     
09.class  getIP{     
10. function  clientIP(){     
11.  $cIP  =  getenv ( 'REMOTE_ADDR' );     
12.  $cIP1  =  getenv ( 'HTTP_X_FORWARDED_FOR' );     
13.  $cIP2  =  getenv ( 'HTTP_CLIENT_IP' );     
14.  $cIP1  ?  $cIP  =  $cIP1  : null;     
15.  $cIP2  ?  $cIP  =  $cIP2  : null;     
16.  return   $cIP ;     
17. }    
18. function  serverIP(){     
19.  return   gethostbyname ( $_SERVER_NAME );     
20. }    
21.}    
22.     
23.$getIP   =  new  getIP();     
24.$clientIp  = getIP::clientIP();     
25.$serverIp  = getIP::serverIP();     
26.     
27.echo   'Client IP is ' , $clientIp , '<br />' ;     
28.echo   'Server IP is ' , $serverIp , '<br />' ;

PHP获取客户端和服务器IP地址的函数写法如下:
[code=Php width=600px]/**
* 获取客户端IP地址
* @return string
*/
function get_client_ip() {
    if(getenv('HTTP_CLIENT_IP')){
        $client_ip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR')) {
        $client_ip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR')) {
        $client_ip = getenv('REMOTE_ADDR');
    } else {
        $client_ip = $_SERVER['REMOTE_ADDR'];
    }
    return $client_ip;
}  
/**
* 获取服务器端IP地址
* @return string
*/
function get_server_ip() {
    if (isset($_SERVER)) {
        if($_SERVER['SERVER_ADDR']) {
            $server_ip = $_SERVER['SERVER_ADDR'];
        } else {
            $server_ip = $_SERVER['LOCAL_ADDR'];
        }
    } else {
        $server_ip = getenv('SERVER_ADDR');
    }
    return $server_ip;
}
[/code]
客户端IP相关的变量
1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP。

2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可伪造。

3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用户是在哪个IP使用的代理,可能存在,可以伪造。

服务器端IP相关的变量
1. $SERVER_NAME,需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。

2. $HTTP_SERVER_VARS["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。

3. $_SERVER['LOCAL_ADDR'] 、$HTTP_SERVER_VARS['LOCAL_ADDR'],测试中,未获得任何结果(测试环境PHP5)。
完整的获得IP类
[code=Php width=600px]01./**  
02. * Get Client/Server IP   
03. *   
04. * @author  Yaron (http://yaron.org.cn)  
05. * @version  0.1  
06. * @package    
07. */    
08.   
09.class  getIP{   
10. function  clientIP(){   
11.  $cIP  =  getenv ( 'REMOTE_ADDR' );   
12.  $cIP1  =  getenv ( 'HTTP_X_FORWARDED_FOR' );   
13.  $cIP2  =  getenv ( 'HTTP_CLIENT_IP' );   
14.  $cIP1  ?  $cIP  =  $cIP1  : null;   
15.  $cIP2  ?  $cIP  =  $cIP2  : null;   
16.  return   $cIP ;   
17. }  
18. function  serverIP(){   
19.  return   gethostbyname ( $_SERVER_NAME );   
20. }  
21.}  
22.   
23.$getIP   =  new  getIP();   
24.$clientIp  = getIP::clientIP();   
25.$serverIp  = getIP::serverIP();   
26.   
27.echo   'Client IP is ' , $clientIp , '<br />' ;   
28.echo   'Server IP is ' , $serverIp , '<br />' ;

php cli方式下获取服务器ip的更多相关文章

  1. php在cli和cgi方式下获取服务器ip的实例

    php cli方式下获取服务器ip php内核没有提供这样的命令,需要借助linux中的命令ifconfig来实现,如下两个函数代码: function getServerIp(){          ...

  2. java获取服务器IP地址及MAC地址的方法

    这篇文章主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下   本文实例讲述了 ...

  3. php脚本时 linux命令获取服务器IP

    exec("netstat -anp | grep smtp",$sendList);   //php脚本获取服务器邮件进程数 exec("netstat -anp |g ...

  4. C# 之 获取服务器IP,客户端IP以及其它

    1.获取客户端IP:Request.ServerVariables.Get("Remote_Addr").ToString(); 2.获取客户端主机名:Request.Server ...

  5. 面试题目: 获取服务器IP和客户端IP

    [面试题目] 怎么获取服务器IP和客户端IP地址? I. PHP获取客户端IP, 可通过下面系统变量 1. $_SERVER['Remote_Addr'] 2. $_SERVER['HTTP_CLIE ...

  6. CDN 环境下获取用户IP方法

    CDN 环境下获取用户IP方法 1 cdn 自定义header头的X-Real-IP,在后端使用$http_x_real_ip获得 proxy_set_header X-Real-IP $remote ...

  7. 获取服务器IP,客户端IP

    客户端IP相关的变量 1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP. 2. $_SERVER['HTTP_CLIENT_IP']; 代理 ...

  8. C#中获取服务器IP,客户端IP以及网卡物理地址

    客户端ip: Request.ServerVariables.Get("Remote_Addr").ToString(); 客户端主机名: Request.ServerVariab ...

  9. c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明

    客户端ip: Request.ServerVariables.Get("Remote_Addr").ToString();  客户端主机名: Request.ServerVaria ...

随机推荐

  1. Redis学习笔记2-使用 Redis 作为 LRU 缓存

    当 Redis 作为缓存使用时,当你添加新的数据时,有时候很方便使 Redis 自动回收老的数据.LRU 实际上是被唯一支持的数据移除方法.Redis 的 maxmemory 指令,用于限制内存使用到 ...

  2. 解决MVC4发布在IIS7后,路径无法访问.apk文件的解决方法

    随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件 ...

  3. Spring4学习笔记2-配置集合属性

    1 可使用<list> <map> <set>等来配置集合属性 2 List <!-- 配置List属性 --> <bean id="p ...

  4. Ubuntu 12.10 配置MyEclipes 10.7环境(加破解)

    下周要在Ubuntu中调试程序,所以今天抽空先配置好Myeclipse环境. 准备: JDK  下载地址: http://www.oracle.com/technetwork/java/javase/ ...

  5. 如何停止CSS3的动画?

    前言 我们在移动端一般使用zepto框架,与其说zepto是jquery的轻量级替代版,不如说是html5替代版我们在js中会用到animate方法执行动画,这个家伙可是真资格的动画,完全是css一点 ...

  6. CSS3利用text-shadow属性实现多种效果的文字样式展现

    一.效过图展示: 已经是比较久之前学习的文字效果了.但是还是很实用很有趣的.利用CSS3提供的text-shadow属性可以给页面上的文字添加阴影效果,因此可以替换掉之前使用过的一些繁琐的图片.到目前 ...

  7. Ridge Regression(岭回归)

    Ridge Regression岭回归 数值计算方法的"稳定性"是指在计算过程中舍入误差是可以控制的. 对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这 ...

  8. Snort - manual 笔记(五)

    1.9 Miscellaneous 1.9.1 Running Snort as a Daemon 如果你想让Snort作为守护程序运行,你可以在最后加上 -D 选项.清注意如果你想通过发送一个 SI ...

  9. 原创:phoenix4.6.0连接hbase1.1.2(不使用phoenix-4.6.0-HBase-1.1-client.jar)

    官网上面的例子是在phoenix-4.6.0-HBase-1.1-client.jar完成的,这个jar包含了phoenix4.6连接hbase1.1.2所有的依赖,真是包罗万象(里面竟然还包括了se ...

  10. 愚人节大狂欢 – ADN DevBlog谎话连篇友谊赛

    愚人节过去了,你被捉弄了没有? :) 借这个机会,ADN的哥们儿也发泄狂欢了一把,我们4月1号当天在ADN DevBlog上发了一堆谎话连篇的blog,没有一个说实话的,哈哈.这是我们team内部进行 ...