2012-04-29 5 views
-1

어떻게 넷 마스크를 특정 넷 마스크로 변환 할 수 있습니까?넷 마스크 변환하기 PHP

예 : 127.0.0.0/16/24 넷 마스크로 변환하십시오. 최대 127.0.255.0/24에

127.0.0.0/24 
127.0.1.0/24 
127.0.2.0/24 
127.0.2.0/24 

등 모든 방법 :

이 출력 뭔가 같이해야한다.

어떻게 PHP를 통해이 작업을 수행 할 수 있습니까? 이 도구를 찾았습니다 : http://jodies.de/ipcalc 그것은 PERL로 코드화되어 있습니다. PHP를 사용하여 비슷한 funcitonality를 얻으려면 어떻게해야합니까?

내가 발견 : http://jasonkolpin.com/classes/ipcalc/demo.php 깨진 것 같아요. 아마도 시도하고 그것을 고칠 것입니다.

업데이트 됨 : 기본적으로 : $exec = shell_exec("/usr/local/bin/ipcalc 127.0.0.0/16 24 -b -n");을 실행하고 네트워크 : 필드를 구문 분석합니다. 이것은 기본적으로 127.0.0.0/16을 모두/24로 변환합니다.

이렇게하려면 ipcalc가 호스트에 설치되어 있는지 확인하십시오. 당신은 FreeBSD의에에 CentOS에서 yum install ipcalc, 또는 우분투 apt-get install ipcalc, 또는 cd /usr/ports/net-mgmt/ipcalc/ && make install clean를 사용하여이 작업을 수행 할 수 있습니다 :

답변

2

나는 IP address manipulation in pure PHP을 할 수있는 라이브러리를 구축했습니다.

이 작업을 수행해야 할 것 :

<?php 
use Leth\IPAddress\IP; 
$current_cidr = 16; 
$desired_cidr = 24; 
$net = IP\NetworkAddress::factory('127.0.0.0', $current_cidr); 
$subnets = $net->split($desired_cidr - $current_cidr); 
+0

와우가 최고입니다. 이것을 시도해 볼 것입니다! 감사! – ChrisG