php 获取 ip 地址 函数:

php 获取 ip 地址 函数:function getIP () //取IP函数
{
     global $_SERVER;
if (getenv(‘HTTP_CLIENT_IP‘)) {
$ip = getenv(‘HTTP_CLIENT_IP‘);
} else if (getenv(‘HTTP_X_FORWARDED_FOR‘)) {
$ip = getenv(‘HTTP_X_FORWARDED_FOR‘);
} else if (getenv(‘REMOTE_ADDR‘)) {
$ip = getenv(‘REMOTE_ADDR‘);
} else {
$ip = $_SERVER[‘REMOTE_ADDR‘];
}
return $ip;
}

扩展:

<?php class clientGetObj
{
     function getBrowse()
     {
     global $_SERVER;
     $Agent = $_SERVER[‘HTTP_USER_AGENT‘];
     $browser = ‘‘;
     $browserver = ‘‘;
     $Browser = array(‘Lynx‘, ‘MOSAIC‘, ‘AOL‘, ‘Opera‘, ‘JAVA‘, ‘MacWeb‘, ‘WebExplorer‘, ‘OmniWeb‘);
     for($i = 0; $i <= 7; $i ++){
         if(strpos($Agent, $Browsers[$i])){
             $browser = $Browsers[$i];
             $browserver = ‘‘;
         }
     }
     if(ereg(‘Mozilla‘, $Agent) && !ereg(‘MSIE‘, $Agent)){
         $temp = explode(‘(‘, $Agent);
         $Part = $temp[0];
         $temp = explode(‘/‘, $Part);
         $browserver = $temp[1];
         $temp = explode(‘ ‘, $browserver);
         $browserver = $temp[0];
         $browserver = preg_replace(‘/([d.]+)/‘, ‘1‘, $browserver);
         $browserver = $browserver;
         $browser = ‘Netscape Navigator‘;
     }
     if(ereg(‘Mozilla‘, $Agent) && ereg(‘Opera‘, $Agent)) {
         $temp = explode(‘(‘, $Agent);
         $Part = $temp[1];
         $temp = explode(‘)‘, $Part);
         $browserver = $temp[1];
         $temp = explode(‘ ‘, $browserver);
         $browserver = $temp[2];
         $browserver = preg_replace(‘/([d.]+)/‘, ‘1‘, $browserver);
         $browserver = $browserver;
         $browser = ‘Opera‘;
     }
     if(ereg(‘Mozilla‘, $Agent) && ereg(‘MSIE‘, $Agent)){
         $temp = explode(‘(‘, $Agent);
         $Part = $temp[1];
         $temp = explode(‘;‘, $Part);
         $Part = $temp[1];
         $temp = explode(‘ ‘, $Part);
         $browserver = $temp[2];
         $browserver = preg_replace(‘/([d.]+)/‘,‘1‘,$browserver);
         $browserver = $browserver;
         $browser = ‘Internet Explorer‘;
     }
     if($browser != ‘‘){
         $browseinfo = $browser.‘ ‘.$browserver;
     } else {
         $browseinfo = false;
     }
     return $browseinfo;
     }

     function getIP ()
     {
     global $_SERVER;
     if (getenv(‘HTTP_CLIENT_IP‘)) {
         $ip = getenv(‘HTTP_CLIENT_IP‘);
     } else if (getenv(‘HTTP_X_FORWARDED_FOR‘)) {
         $ip = getenv(‘HTTP_X_FORWARDED_FOR‘);
     } else if (getenv(‘REMOTE_ADDR‘)) {
         $ip = getenv(‘REMOTE_ADDR‘);
     } else {
         $ip = $_SERVER[‘REMOTE_ADDR‘];
     }
     return $ip;
     }

     function getOS ()
     {
     global $_SERVER;
     $agent = $_SERVER[‘HTTP_USER_AGENT‘];
     $os = false;
     if (eregi(‘win‘, $agent) && strpos($agent, ‘95‘)){
         $os = ‘Windows 95‘;
     }
     else if (eregi(‘win 9x‘, $agent) && strpos($agent, ‘4.90‘)){
         $os = ‘Windows ME‘;
     }
     else if (eregi(‘win‘, $agent) && ereg(‘98‘, $agent)){
         $os = ‘Windows 98‘;
     }
     else if (eregi(‘win‘, $agent) && eregi(‘nt 5.1‘, $agent)){
         $os = ‘Windows XP‘;
     }
     else if (eregi(‘win‘, $agent) && eregi(‘nt 5‘, $agent)){
         $os = ‘Windows 2000‘;
     }
     else if (eregi(‘win‘, $agent) && eregi(‘nt‘, $agent)){
         $os = ‘Windows NT‘;
     }
     else if (eregi(‘win‘, $agent) && ereg(‘32‘, $agent)){
         $os = ‘Windows 32‘;
     }
     else if (eregi(‘linux‘, $agent)){
         $os = ‘Linux‘;
     }
     else if (eregi(‘unix‘, $agent)){
         $os = ‘Unix‘;
     }
     else if (eregi(‘sun‘, $agent) && eregi(‘os‘, $agent)){
         $os = ‘SunOS‘;
     }
     else if (eregi(‘ibm‘, $agent) && eregi(‘os‘, $agent)){
         $os = ‘IBM OS/2‘;
     }
     else if (eregi(‘Mac‘, $agent) && eregi(‘PC‘, $agent)){
         $os = ‘Macintosh‘;
     }
     else if (eregi(‘PowerPC‘, $agent)){
         $os = ‘PowerPC‘;
     }
     else if (eregi(‘AIX‘, $agent)){
         $os = ‘AIX‘;
     }
     else if (eregi(‘HPUX‘, $agent)){
         $os = ‘HPUX‘;
     }
     else if (eregi(‘NetBSD‘, $agent)){
         $os = ‘NetBSD‘;
     }
     else if (eregi(‘BSD‘, $agent)){
         $os = ‘BSD‘;
     }
     else if (ereg(‘OSF1‘, $agent)){
         $os = ‘OSF1‘;
     }
     else if (ereg(‘IRIX‘, $agent)){
         $os = ‘IRIX‘;
     }
     else if (eregi(‘FreeBSD‘, $agent)){
         $os = ‘FreeBSD‘;
     }
     else if (eregi(‘teleport‘, $agent)){
         $os = ‘teleport‘;
     }
     else if (eregi(‘flashget‘, $agent)){
         $os = ‘flashget‘;
     }
     else if (eregi(‘webzip‘, $agent)){
         $os = ‘webzip‘;
     }
     else if (eregi(‘offline‘, $agent)){
         $os = ‘offline‘;
     }
     else {
         $os = ‘Unknown‘;
     }
     return $os;
     }

}?>
时间: 2024-08-02 12:32:54

php 获取 ip 地址 函数:的相关文章

PHP获取IP地址及根据IP判断城市实现城市切换或跳转

PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: ? <? //PHP获取当前用户IP地址方法 $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $xp_UserIp = ($xp_UserIp) ? $xp_

【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地

本文与<[Servlet]Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地>(点击打开链接)为姊妹篇,只是后端编程语言换成了php. 做出同样的效果,打开页面,得到客户端的ip,并获取利用新浪api接口获取此ip的归属地. 可以看到,在IE6也是相当正常的. 目录结构如下,非常简单,同样就两个文件,其实如果你愿意,写成一个php文件也可以,但是显示层和逻辑业务层还是不混在一起为好吧? 唯一值得注意的是,这两个文件打死也不能一个叫ipGet.php,ipGet.html

获取ip地址&amp;&amp;测试ip地址

# request# 动态页面加载 Selenium# request# 响应类型为 json# import json # json.loads(str) # 将str转化为dict# json.dumps(dict) # 将dict转化为 str #获取ip地址开始import requestsfrom fake_useragent import UserAgent #代理from lxml.etree import HTML #获取htmlimport time,pickle #包#常见的

获取IP地址

获取本地计算机的IP地址 关键点 WSAStartup The Windows Sockets WSAStartup function initiates use of Ws2_32.dll by a process. int WSAStartup( WORDwVersionRequested, LPWSADATAlpWSAData ); 实现过程 #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") char* 

ARM-Linux配置DHCP自动获取IP地址

备注:内核版本:2.6.30.9busybox版本:1.15.2 PC Linux和开发板Linux的工作用户:root 1. 配置内核:[*] Networking support --->Networking options ---><*> Packet socket<*> Unix domain sockets[*] TCP/IP networking[*] IP: kernel level autoconfiguration[*] IP: DHCP suppor

DHCP获取IP地址过程中捕获的报文—三级网络总结(二)

上一篇文章主要说了一下知识点中的IP地址的考点,这一篇我打算说说DHCP获取IP地址过程中捕获的报文的这个考点,都是自己的理解,有错误欢迎指正. DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议.数据在网络上传输的时候要自顶向下逐层封装的,典型的DHCP过程是这样的: 1:客户机向服务器发送DHCP_DISCOVER报文,申请IP. 2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP. 3:客户机向服务器发送DHCP_REQUEST报文,请求这个

自动设置IP地址和自动获取IP地址bat批处理文件

自动设置IP地址.bat Echo offecho  手动设置IP地址....Netsh interface IP Set Addr "本地连接" Static 192.168.1.8 255.255.255.0 192.168.1.1 1echo  手动设置DNS地址....Netsh interface IP Set dns "本地连接" static 202.106.196.115 primaryecho  手动设置备份DNS地址....Netsh inter

CentOS 7如何设置Linux开机自动获取IP地址

centos7 minimal版默认安装好后没有获取ip地址,需要手动配置.方法如下: 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录下网卡名称(本例中为ens33). 2.输入“cd /etc/sysconfig/network-scripts/”按回车键确定,继续输入“ls”按回车键查看文件. 3.输入“vi ifcfg-ens33”并按回车键确定(网卡名称可能不同).亦可在第二步直接输入“cd /etc/sysconfig/

电脑无法获取IP地址

电脑无法获取IP地址 朋友的家里有一个无线路由器,手机可以获取IP地址,但是电脑却一直获取不到IP,尝试的去重启网卡然后重启电脑,重启路由器恢复出厂设置重新配置但都无法解决. 最终的解决办法:netsh winsock reset 在系统中执行这个命令后重新启动电脑问题解决了! netsh winsock reset 作用是重置 Winsock 目录.如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录