2010-08-12 2 views
2

에서 IP 주소를 얻기 위해, 그리고 내가 그것을 필요PHP 정규 표현식 내가 텔넷을 통해 장치의 자동 설정하는 PHP 스크립트를 쓰고 있어요/etc/hosts 파일

/etc/hosts 파일에서 일부 IP 주소를 잡기 위해 필요 IP 주소 만 잡고 호스트 이름을 기반으로 변수에 할당하십시오. 예 :

192.168.1.50 machine 
192.168.1.51 printer 
192.168.1.52 sigpad 

PHP 스크립트는 다음과 같이되어야한다 :

물론
$machineip = "192.168.1.50"; 
$printerip = "192.168.1.51"; 
$sigpadip = "192.168.1.52"; 

, 내 /etc/hosts 파일 다른,하지만 당신은 내 예에서 아이디어를 얻을 수 있습니다. 그러면 기존 PHP 프로그램에이 PHP 스크립트를 포함시키고 하드 코드 된 IP 주소 대신 변수를 사용할 수있게 될 것입니다.

+0

이러한 항목이/etc/hosts에 있으면 프로그램에서 이름으로 이미 주소를 지정할 수 있습니다. – Cfreak

+0

사실, 다른 프로그램은보고 전자 메일 및 데이터베이스에 실제 IP 주소를 포함하므로 실제 IP 주소를 알아야합니다. – Mistiry

답변

2
function ipFromEtcHosts($host) { 
    foreach (new SplFileObject('/etc/hosts') as $line) { 
     $d = preg_split('/\s/', $line, -1, PREG_SPLIT_NO_EMPTY); 
     if (empty($d) || substr(reset($d), 0, 1) == "#") 
      continue; 
     $ip = array_shift($d); 
     $hosts = array_map('strtolower', $d); 
     if (in_array(strtolower($host), $hosts)) 
      return $ip; 
    } 
} 

예 :

echo ipFromEtcHosts('ip6-mcastprefix'); 

ff00::0을 준다.

+0

아직 upvote 수 없지만, 완벽하게 작동했습니다! 고맙습니다! – Mistiry