
本文所述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)
这个函数功能也很强大。
采用ADSL拨号方式的用户大都可以获得一个公网IP地址,
安装Windows XP,Windows2000,Windwos2003系统的用户,
在 开始/运行里输入 “cmd” 然后输入“ipconfig”命令可以查看本机IP地址,
但是每次使用都要打开“命令提示符”窗口,感到非常的麻烦,有没有简单省事的办法呢?
其实就在系统托盘处(屏幕右下角,就是的旁边)有一个双PC形状的“本地连接”图标,打开“本地连接”窗口,切换到“支持”选项页,在这里你可以看到地址类型、IP地址、子网掩码等信息,点击“详细信息”按钮还可以看到网卡的MAC地址、IP地址、IP掩码、默认网关、DHCP服务器、租约过期、DNS服务器等等更加详细的内容,是不是比使用ipconfig命令方便多了。
如果我在内网,怎样查看本机外网(公网)ip地址?
访问本站: ip 查询页面 >
因为你拿本机访问的,所以只能是127001
如果你是局域网用户,让其他用户访问,就会变成例如:1921680123之类
如果让外网用户访问,就会是外网用户的IP了
//最简单获取ip地址代码一句实例
$reIP=$_SERVER["REMOTE_ADDR"];
echo $reIP;
//
//php教程获取ip的算法
if(getenv(>
方法:
1、进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择需要的模块,比如curl模块执行phpize生成编译文件,phpize在PHP安装目录的bin目录下。
2、phpize 运行时,可能会报错Cannot find autoconf。
3、需要安装autocon执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查。
这个跟你的路由设置和访问方式有关。
假设你的服务端在1010501,公网IP都是8888。
假设你的客户端在 101050100-199,出口公网IP是4444
如果你的客户端以公网的形式访问,如>
1、做成web服务器需要满足:域名或者公网ip,电脑安装配置web服务,开启80端口允许访问,网站程序。
2、域名或者公网ip,这一点一般家用宽带没有固定的公网ip,常用的动态域名解析花生壳,科迈动态解析,建议申请使用花生壳动态域名解析,并设置到路由器上,这样网站的访问域名是花生壳的子域名。
3、如果有公网固定ip,建议购买一个域名解析到这个ip上,这个公网ip可以在电脑直接设定。web绑定,防火墙允许80端口就可以了。
4、电脑安装配置web服务,这个条件比较好实现 ,找个服务器 *** 作系统,如win2003系统,安装上iis组件就可以了,默认80就打开了,然后再配置一下程序需要的环境。
5、如果net程序就安装net framwork相应版本,如果php就配置php+mysql环境。
6、家用宽带默认80端口在路由器不开放的,需要在路由器上做端口映射,将个人电脑ip 80端口通过宽带路由映射出去。
7、网站程序,自己会开发了可以自己做,不会了到网上下载一些开源程序就可以了。
//试试这个
function getip(){if(!empty($_SERVER[">
以上就是关于php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例全部的内容,包括:php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例、怎么样可以知道自己电脑的公网IP、关于php获取ip的问题 $ip = $_SERVER['REMOTE_ADDR']; 请高手解答下!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)