LAN에 있는 모든 사용자의 컴퓨터 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를 사용하여 LAN에 있는 모든 사용자의 컴퓨터를 가져옵니다. IP, 호스트 이름 및 Mac 주소의 완전한 예이 프로그램은 cli 모드에서 실행되며 브라우저에서도 가능해야 합니다PHP 함수를 가져오기 LAN에서 사용자 IP가 완성되고, PHP가 주로 사용됩니다. exec 함수와 윈도우의 arp -a 명령 로컬 IP 얻기: gethostbyname($_ENV['COMPUTERNAME']) 은 이전 작성 방법과 다릅니다. 계속해서 심도있게 공부할 수 있습니다. 호스트 이름 가져오기 기능: gethostbyaddr(IPd) 이 기능도 매우 강력합니다. 추천 학습:
위 내용은 PHP LAN에서 모든 사용자의 컴퓨터 IP, 호스트 이름 및 Mac 주소를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!