私の動機は、php を使用してドメイン名のホスティング プロバイダーを取得することです。任意のドメイン名 (yahoo.com) に tracert/traceroute すると、次のようになります。
72.30.2.43 (72.30.2.43) への traceroute、最大 30 ホップ、40 バイト パケット 1 c1.25.78ae.static.theplanet.com (174.120.37.193) 0.648 ミリ秒 0.630 ミリ秒 0.647 ミリ秒 2 te6-2.dsr02.dllstx2.networklayer.com (70.87.254.237) 0.365 ミリ秒 0.430 ミリ秒 0.462 ミリ秒 3 te7-4.dsr02.dllstx3.networklayer.com (70.87.253.121) 0.562 ミリ秒 te4-3.dsr02.dllstx3.networklayer.com (70.87.255.129) 0.910 ミリ秒 te4-4.dsr02.dllstx3.networklayer.com (70.87) .255.133) 0.664 ミリ秒 4 ae17.bbr01.eq01.dal03.networklayer.com (173.192.18.226) 0.403 ミリ秒 ae17.bbr02.eq01.dal03.networklayer.com (173.192.18.230) 0.380 ミリ秒 0.405 ミリ秒 5 ae1.bbr01.cf01.den01.networklayer.com (173.192.18.139) 14.864 ミリ秒 14.723 ミリ秒 14.770 ミリ秒 6 ae1.bbr01.cf01.den01.networklayer.com (173.192.18.139) 14.787 ミリ秒 198.32.216.25 (198.32.216.25) 14.882 ミリ秒 14.946 ミリ秒 7 198.32.216.25 (198.32.216.25) 14.863 ミリ秒 ae-7.pat1.pao.yahoo.com (216.115.101.128) 38.403 ミリ秒 ae-7.pat1.sjc.yahoo.com (216.115.101.149) 41.250 ミリ秒 8 ae-1-d420.msr1.sk1.yahoo.com (216.115.106.161) 38.930 ミリ秒 ae-1-d400.msr1.sk1.yahoo.com (216.115.106.153) 41.643 ミリ秒 ae-0-d210.msr2.sk1 .yahoo.com (216.115.106.133) 38.617 ミリ秒 9 te-8-1.bas-k1.sk1.yahoo.com (68.180.160.9) 41.478 ミリ秒 te-9-1.bas-k2.sk1.yahoo.com (68.180.160.15) 39.368 ミリ秒 ae-0-d230 .msr2.sk1.yahoo.com (216.115.106.141) 42.650 ミリ秒 10 * * te-8-1.bas-k2.sk1.yahoo.com (68.180.160.11) 41.787 ミリ秒 11 * * * 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * *
最後の有効なドメイン名を取得したい (この場合):
`10 * * te-8-1.bas-k2.sk1.yahoo.com (68.180.160.11) 41.787 ミリ秒`
このコード (stristr()) を使用すると、簡単にこれに到達できます。
$a = 爆発("\n",$str); foreach($a as $v){ if(!stristr($v,'* * *')){ $v をエコーします。
'; } }
この結果が必要です:
yahoo.com
# 10 からのはずです ( 10 * * te-8-1.bas-k2.sk1.yahoo.com (68.180.160.11) 41.787 ms )
誰にもこれに対する解決策がありますか?または、誰かがここで私の基本的な目的に対するより良い解決策を持っている場合.
本当に助けていただければ幸いです。
ありがとうございました!