中易网

PHP怎么获取当前电脑的IP?

答案:1  悬赏:10  
解决时间 2021-01-06 19:25
PHP怎么获取当前电脑的IP?
最佳答案
本文所述php实例可以完成获取局域网所有用户的电脑IP和主机名、及mac地址的功能,对于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";
}
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
何为关心体贴爱护与喜欢
谁能说一下js中flag做标识变量的用法么
qq游戏二战风云原15服极地重生怎么不见了?
maya 为什么要拖动才能建模
债券到期期限和债券偿还期限有区别吗?
求祖尔英雄打法讲解 天赋怎么点 怎么打
长祥汽车销售公司地址有知道的么?有点事想过
东方时尚宝贝美容美发烫染会所地址在什么地方
网购已上瘾,应该怎么办
如何办理跨行政辖区临时行驶牌照
青田至榆林多少公里
香港简欧家居生活馆在哪里啊,我有事要去这个
bmx买什么牌子好?
上虞到恩施动车路程多少公里
为什么有喜欢的人还要每天找我聊天?
推荐资讯
数学故事解答
adams里边如何测一个输出轴所受的力矩呢?
金融衍生物(金融衍生产品?)是什么意思啊?
星际战甲圣剑战甲攻略 星际战甲圣剑战甲有什
看图猜成语答案三个务三个物三个误
生完宝宝应不应该长期穿收腹内裤
术士的宝宝不能自动攻击了吗
我的imessage 一直正在等待激活怎么办?
2014九年级科学作业本答案浙教版
有谁知道哪里有小视频看吗?
今天下午中央四台播什么电视剧
跪求文献翻译啊不要翻译器的~~~~~
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?