0

I need to make it with PHP, maybe with some pear package or php internal functions. How i can do that ?

I know i need gethostbyname() for hostname checking, but i need also ip range of this provider. example: ip: 5.7.8.9 host: usa provider ip range 5.7.8.0-5.7.9.0

Is it possible with php?

4

1 に答える 1

2

BGPにアクセスせずにIP範囲を正確に確認する方法はありませんが、ISPが正しい情報を提供することを信頼している場合は、whoisから情報を取得できます。shell_execなどを使用して、コマンドラインwhoisクライアントを呼び出します。

私はあなたにこれらのラベルのために一体を提案します:

  • inetnum
  • NetRange
  • CIDR
  • ルート

そしておそらくもっと。ただし、Whoisは常に信頼できるとは限りません。これは、標準形式が定義されていないテキストデータベースであるため、常に使用可能な回答が得られるとは限らず、何を探すべきかが常にわからない場合があります。

私が言ったように、最も信頼できる解決策は、実際のインターネットルーティングをチェックできるように実際のBGPアクセスを取得することです。ただし、これはかなり高度なため、ルーティングルックアップに使用できるWebサービスがあるのではないでしょうか。

編集 私は実際にこのプロジェクトを見つけました。これはBGPクエリ用のAPIを提供します:http ://www.routeviews.org/

routeviews.orgには、TXT recondsの2つのサブドメイン、asnとaspathがあります。asn.routeviews.orgは、逆にされたIPv4アドレスまたはプレフィックス(例:128.223-> 223.128.asn.routeviews.org)を、route-views2で見られる最適なルートの起点AS(およびプレフィックスとプレフィックスの長さ)にマッピング(解決)します。 .routeviews.org。aspath.routeviews.orgも同じ考えですが、完全なASパスに解決されます。

これは、単純なDNSクエリを介してIPのサブネットを取得するために使用できる可能性があります。サブネットを使用すると、IP範囲を簡単に計算できます(おそらくすでにご存知のとおり、範囲はサブネットの表記法が異なるだけです)。

于 2010-10-24T08:23:43.193 に答える