13

PHP ページを閲覧している人の ISP プロバイダーを調べるにはどうすればよいですか?

PHP を使用して追跡または公開することは可能ですか?

次のようなものを使用する場合:

gethostbyaddr($_SERVER['REMOTE_ADDR']);

ホスト名や ISP ではなく、IP アドレスを返します。

4

15 に答える 15

10

これはあなたが探しているもののようです。可能であれば、完全なホスト名を返そうとします:

http://us3.php.net/gethostbyaddr

于 2009-05-13T03:47:34.490 に答える
10

編集:ヒットした 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>
于 2011-03-25T05:35:33.573 に答える
8

HTTP ヘッダーには、ユーザーがどのISPから来ているかを示すものは何もないため、答えはノーです。これを通知する PHP 組み込み関数はありません。IPをネットワーク/ ISPにマップする何らかのサービスまたはライブラリを使用する必要があります。

于 2009-05-13T04:29:39.397 に答える
2

フィールドが変わることもあるので、これは上記の投稿の改善です。

<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> 
于 2011-09-01T09:32:33.460 に答える
1

GeoIPはこれを支援します:http://www.maxmind.com/app/locate_my_ip

geoipデータにアクセスするためのphpライブラリがあります:http://www.maxmind.com/app/php

ただし、それを機能させるには、geoipdbをマシンに配置する必要があります。すべての手順があります:)

于 2009-05-13T07:45:18.607 に答える
1

誰かが使用している ISP を知るために、IP アドレスまたはホスト名のどちらにも頼ることはできません。実際、彼は ISP をまったく使用していないか、VPN 接続を介して勤務先にログインし、そこから別の VPN またはリモート デスクトップを使用して世界中のホスティング サービスに接続し、そこからあなたに接続している可能性があります。 . 取得するIPアドレスは、最後のリモートマシンからのものか、そのマシンが背後にあるファイアウォールからのものであり、別の場所にある可能性があります。

于 2010-03-18T06:20:25.570 に答える
0

IPを検索してサービスプロバイダーを見つけるには、サードパーティのサービス(おそらくWebサービス)を使用する必要があると思います。

于 2009-05-13T03:47:27.873 に答える
0

http://whatismyip.comにアクセスしてください

これにより、あなたのインターネットアドレスが得られます。そのアドレスをhttp://arin.net/whoisのデータベースに挿入します

于 2009-05-13T04:44:39.433 に答える
0
<?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) 名を取得する

http://php.net/manual/ru/function.geoip-isp-by-name.php

于 2017-10-24T08:59:54.170 に答える
-1

これは、サイトまたは IP から isp を見つける適切な方法です。

<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
    echo 'This host IP is from ISP: ' . $isp;
}
?>
于 2013-04-15T23:32:32.273 に答える