-1

ネットマスクを特定のネットマスクに変換するにはどうすればよいですか?

例: 127.0.0.0/16 /24 ネットマスクに変換します。

次のような出力が必要です。

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

など、127.0.255.0/24 までずっと。

これを PHP でどのように実現できますか? このツールを見つけました: http://jodies.de/ipcalc Perlでコーディングされています。PHPを使用して同様の機能を得るにはどうすればよいですか?

私はこれを見つけました:http://jasonkolpin.com/classes/ipcalc/demo.php壊れているようですが..おそらくそれを修正しようとします。

解決済みの更新:私は基本的に run:を実行$exec = shell_exec("/usr/local/bin/ipcalc 127.0.0.0/16 24 -b -n");し、Network: フィールドを解析します。これは基本的に 127.0.0.0/16 をすべての /24 に変換します。

これを行うには、ホストに ipcalc がインストールされていることを確認してください。yum install ipcalcこれは、CentOS、apt-get install ipcalcUbuntu、またはcd /usr/ports/net-mgmt/ipcalc/ && make install cleanFreeBSDで使用して実行できます:)

4

1 に答える 1

2

純粋な PHP で IP アドレス操作を行うためのライブラリを作成しました。

あなたはこれをしなければならないでしょう:

<?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);
于 2012-09-01T21:59:10.213 に答える