客户端IP相关的变量:
1 $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP。
2 $_SERVER['>
发一个函数给你
获取客户端IP地址
@param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
@param boolean $adv 是否进行高级模式获取(有可能被伪装)
@return mixed
/
function get_client_ip($type = 0,$adv=false) {
$type = $type 1 : 0;
static $ip = NULL;
if ($ip !== NULL) return $ip[$type];
if($adv){
if (isset($_SERVER['>}
如果是本地测试的话,获取到的是127001
$user_IP = $_SERVER["REMOTE_ADDR"];//获取访问者IP$file_name=date('Y-m-d')'txt'//以当前的日期建立txt文件
$file=fopen($file_name,"a+");//如果存在该文件就打开,如果不存在就创建
fwrite($file,$user_IP'--'date('Y-m-d H:i:s'));//将访问者IP及当前时刻写到文件最后
fclose($file);//关闭文件
//个人觉得txt文件不会很大所以一般无需一天一删除,因为在txt里删除一些行比起数据库要麻烦一些。
本文所述php实例可以完成获取局域网所有用户的电脑IP和主机名、及mac地址的功能,对于php程序设计人员有一定的参考借鉴价值。完整代码如下:<php
$bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP
echo "本机IP:",$bIp,"\n";
echo "本机主机名:",gethostbyaddr($bIp),"\n\n\n"; //gethostbyaddr 函数可以根据局域网IP获取主机名
//默认网关IP
list($ipd1,$ipd2,$ipd3) = explode('',$bIp);
$mask = $ipd1 "" $ipd2 "" $ipd3 ;
exec('arp -a',$aIp); //获取局域网中的其他IP
foreach( $aIp as $ipv) {
if(strpos($ipv,'接口') !== false) {//一下显示的IP是否是当前局域网中的 而不是其他的类型 可以在cmd下试一下命令
$bool = false;
preg_match('/(:(:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]\d)))\){3}(:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]\d)))/',$ipv,$arr);
if(strcmp($arr[0],$bIp) == 0) {
$bool = true;
}
} else {
if($bool) {
$str = preg_replace('/\s+/', '|', $ipv);
$sArr = explode('|',$str);
if($sArr[1] == 'Internet' || empty($sArr[1])) {
continue;
}
//去除默认网关
if(strcmp($mask "1", $sArr[1]) == 0) {
continue;
}
//去除同网关下255的IP
if(strcmp($mask "255", $sArr[1]) == 0) {
continue;
}
//去除组播IP
list($cIp) = explode('', $sArr[1]);
if($cIp >= 224 && $cIp <= 239) {
continue;
}
echo "IP地址:|",$sArr[1],"|\n";
echo "MAC地址:",$sArr[2],"\n";
echo "主机名:",gethostbyaddr($sArr[1]),"\n";
echo "\n\n";
}
}
}使用php获取IP的方法能找到很多。
function getIp(){
if (getenv(">php获取用户真实ip的方法:
方法1:
//获取REMOTE_ADDR属性,直接可以得到ip
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
方法2:
//从Server中获取>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)