PHP ページを閲覧している人の ISP プロバイダーを調べるにはどうすればよいですか?
PHP を使用して追跡または公開することは可能ですか?
次のようなものを使用する場合:
gethostbyaddr($_SERVER['REMOTE_ADDR']);
ホスト名や ISP ではなく、IP アドレスを返します。
PHP ページを閲覧している人の ISP プロバイダーを調べるにはどうすればよいですか?
PHP を使用して追跡または公開することは可能ですか?
次のようなものを使用する場合:
gethostbyaddr($_SERVER['REMOTE_ADDR']);
ホスト名や ISP ではなく、IP アドレスを返します。
これはあなたが探しているもののようです。可能であれば、完全なホスト名を返そうとします:
編集:ヒットした Web サイトが自動クエリをブロックするようになったため、この方法は機能しなくなりました (以前は、この方法は Web サイトの利用規約に違反していました)。以下に、他にもいくつかの良い[法的!]回答があります(私の代替案であるこれを含む)。
これらはすべて、次の PHP コーディングから取得できます。
<?php
$ip=$_SERVER['REMOTE_ADDR'];
$url=file_get_contents("http://whatismyipaddress.com/ip/$ip");
preg_match_all('/<th>(.*?)<\/th><td>(.*?)<\/td>/s',$url,$output,PREG_SET_ORDER);
$isp=$output[1][2];
$city=$output[9][2];
$state=$output[8][2];
$zipcode=$output[12][2];
$country=$output[7][2];
?>
<body>
<table align="center">
<tr><td>ISP :</td><td><?php echo $isp;?></td></tr>
<tr><td>City :</td><td><?php echo $city;?></td></tr>
<tr><td>State :</td><td><?php echo $state;?></td></tr>
<tr><td>Zipcode :</td><td><?php echo $zipcode;?></td></tr>
<tr><td>Country :</td><td><?php echo $country;?></td></tr>
</table>
</body>
HTTP ヘッダーには、ユーザーがどのISPから来ているかを示すものは何もないため、答えはノーです。これを通知する PHP 組み込み関数はありません。IPをネットワーク/ ISPにマップする何らかのサービスまたはライブラリを使用する必要があります。
フィールドが変わることもあるので、これは上記の投稿の改善です。
<body>
<table align="center">
<?
$ip=$_SERVER['REMOTE_ADDR'];
$url=file_get_contents("http://whatismyipaddress.com/ip/$ip");
preg_match_all('/<th>(.*?)<\/th><td>(.*?)<\/td>/s',$url,$output,PREG_SET_ORDER);
for ($q=0; $q < 25; $q++) {
if ($output[$q][1]) {
if (!stripos($output[$q][2],"Blacklist")) {
echo "<tr><td>".$output[$q][1]."</td><td>".$output[$q][2]."</td></tr>";
}
}
}
?>
</table>
</body>
GeoIPはこれを支援します:http://www.maxmind.com/app/locate_my_ip
geoipデータにアクセスするためのphpライブラリがあります:http://www.maxmind.com/app/php
ただし、それを機能させるには、geoipdbをマシンに配置する必要があります。すべての手順があります:)
誰かが使用している ISP を知るために、IP アドレスまたはホスト名のどちらにも頼ることはできません。実際、彼は ISP をまったく使用していないか、VPN 接続を介して勤務先にログインし、そこから別の VPN またはリモート デスクトップを使用して世界中のホスティング サービスに接続し、そこからあなたに接続している可能性があります。 . 取得するIPアドレスは、最後のリモートマシンからのものか、そのマシンが背後にあるファイアウォールからのものであり、別の場所にある可能性があります。
IPを検索してサービスプロバイダーを見つけるには、サードパーティのサービス(おそらくWebサービス)を使用する必要があると思います。
http://whatismyip.comにアクセスしてください
これにより、あなたのインターネットアドレスが得られます。そのアドレスをhttp://arin.net/whoisのデータベースに挿入します
<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
echo 'This host IP is from ISP: ' . $isp;
}
?>
(PECL geoip >= 1.0.2)
geoip_isp_by_name — インターネット サービス プロバイダー (ISP) 名を取得する
これは、サイトまたは IP から isp を見つける適切な方法です。
<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
echo 'This host IP is from ISP: ' . $isp;
}
?>