php cli方式下获取服务器ip
-
(未整理....)
(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的更多相关文章
- php在cli和cgi方式下获取服务器ip的实例
php cli方式下获取服务器ip php内核没有提供这样的命令,需要借助linux中的命令ifconfig来实现,如下两个函数代码: function getServerIp(){ ...
- java获取服务器IP地址及MAC地址的方法
这篇文章主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下 本文实例讲述了 ...
- php脚本时 linux命令获取服务器IP
exec("netstat -anp | grep smtp",$sendList); //php脚本获取服务器邮件进程数 exec("netstat -anp |g ...
- C# 之 获取服务器IP,客户端IP以及其它
1.获取客户端IP:Request.ServerVariables.Get("Remote_Addr").ToString(); 2.获取客户端主机名:Request.Server ...
- 面试题目: 获取服务器IP和客户端IP
[面试题目] 怎么获取服务器IP和客户端IP地址? I. PHP获取客户端IP, 可通过下面系统变量 1. $_SERVER['Remote_Addr'] 2. $_SERVER['HTTP_CLIE ...
- CDN 环境下获取用户IP方法
CDN 环境下获取用户IP方法 1 cdn 自定义header头的X-Real-IP,在后端使用$http_x_real_ip获得 proxy_set_header X-Real-IP $remote ...
- 获取服务器IP,客户端IP
客户端IP相关的变量 1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP. 2. $_SERVER['HTTP_CLIENT_IP']; 代理 ...
- C#中获取服务器IP,客户端IP以及网卡物理地址
客户端ip: Request.ServerVariables.Get("Remote_Addr").ToString(); 客户端主机名: Request.ServerVariab ...
- c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
客户端ip: Request.ServerVariables.Get("Remote_Addr").ToString(); 客户端主机名: Request.ServerVaria ...
随机推荐
- python常用工具小函数-字符类型转换
Python3有两种表示字符序列的类型:bytes和str.前者的实例包含原始的8位值就是的字节,每个字节有8个二进制位:后者的实例包含Unicode字符.把Unicode字符转成二进制数据最常见的编 ...
- Windows台的FailOver群集简介
首先,您需要有一些服务器硬件方面知识. 我们介绍Windows平台的FailOver群集,以多个站点场景为例,如下图示: 八个结点NODE,Windows的FailOver群集,依赖SAN存储同步各个 ...
- 20个新鲜出炉的网站模板【HTML & PSD】
这里给大家分享20 个新鲜出炉的免费网站模板.这些设计元素将成为你下一个项目的重要素材,可以帮你节省很多的时间.与往常一样,我们经常漫游网络,寻找最好的资源, HTML.CSS 和 PSD 等等,记得 ...
- Pexels Videos – 可以免费商业使用的短视频
Pexels 是一个巨大的平台,提供免费的精美照片,很多设计师和博客每天用它来寻找他们的个人和商业项目的照片.现在我们想介绍 Pexels 视频,他是用来帮助你找到免费的视频.所有的 Pexels 视 ...
- JavaScript学习笔记-基础语法、类型、变量
基础语法.类型.变量 非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...
- Shiro简介
1.简介 Apache Shiro是一个功能强大且易于使用的Java安全框架,进行身份验证,授权,加密和会话管理,可用于保护任何应用程序 - 从命令行应用程序,移动应用程序到大型的Web应用和企业应用 ...
- OS X EI Capitan 系统 安装cocoapod
没有废话直接上步骤 (哪一步卡住了 多试几次 可能是网络不好的缘故) 1. 首先安装 home-brew 以下方法转自:http://www.cnblogs.com/lzrabbit/p/4 ...
- Tint(着色器)的兼容实现
我们在做控件的时候可以使用tint这个属性给控件上色,这样在很多情况下能减少不同色彩的资源色彩.在MD设计中,控件颜色随着主体改变也是一大要点,今天我们就来看看如何使用它. 使用步骤:1.建立一个控件 ...
- [Android]使用RecyclerView替代ListView(一)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4232560.html RecyclerView是一个比List ...
- Android 样式和主题(style & theme)
Android 样式 android中的样式和CSS样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view控件属性的集合.如:需要定义字体的颜色和大小. 在CSS中是这样定义的 ...