2

Telnet経由でデバイスを自動構成するPHPスクリプトを作成していますが、/ 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スクリプトを既存のプログラムのいずれかに含め、ハードコードされたIPアドレスの代わりに変数を使用できるようになります。

4

1 に答える 1

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ます。

于 2010-08-12T16:26:48.493 に答える