本文所述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";
}
}
}
该程序是在cli模式下运行的,在浏览器上应该也可以
php获取局域网中的用户ip功能就完成了,主要用到的是php的exec函数
和window的arp
-a
命令
其中获取本机IP:gethostbyname($_ENV['COMPUTERNAME'])
有别于以往的写法,感兴趣的朋友可以继续深入研究一下。
获取主机名函数:gethostbyaddr(IPd)
这个函数功能也很强大。
你这个代码获取不了客户端的Mac地址,获取到的只能是你服务器端的Mac,
但对你的问题,把结果插入数据库就很简单了
<php
$conn=mysql_connect('localhost','用户名','密码'); //连接服务器
mysql_select_db('数据库名',$conn); //选择数据库
mysql_query("insert into 表名(mac) values ('Mac值')'"); 插入你获得的数据
mysql_close($conn);//关闭数据库
>
能!如php获取mac地址:<php
@exec("ipconfig /all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
if(eregi("Physical",$array[$Tmpa])){
$mac=explode(":",$array[$Tmpa]);
echo $mac[1];
}
}
>
还能获取ip,访问端口,浏览当前页面用户的主机名等信息。至于js我不是很了解,但是也是可以获取和php差不多的信息。
具体的php的实现方法可以看:>
权限足够的情况下,可以输出cpu信息php调用:$a = exec('cat /proc/stat');php有个执行方式是用``包裹字符串,同样可以在系统上直接执行同样需要足够的权限。
PHP获取网卡MAC地址的方法- -
做一个限定用户登录的东西时用到这段代码,可能还有人会用到,拿出来分享
<php
@exec("ipconfig /all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
if(eregi("Physical",$array[$Tmpa])){
$mac=explode(":",$array[$Tmpa]);
echo $mac[1];
}
}
>
以上就是关于php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例全部的内容,包括:php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例、这段php已获取到pc的mac地址并可以显示mac但如何把看到的mac地址写入mysql数据库、php,js等,能通过浏览器取得访问者的mac地址吗还能取得客户的哪些信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)