ホームページ  >  記事  >  バックエンド開発  >  http - サードパーティのインターフェイスを使用せずに、PHP で IP アドレスに基づいて地理的位置を取得する方法はありますか? (サードパーティのインターフェイスはこの機能をどのように実装しますか?)

http - サードパーティのインターフェイスを使用せずに、PHP で IP アドレスに基づいて地理的位置を取得する方法はありますか? (サードパーティのインターフェイスはこの機能をどのように実装しますか?)

WBOY
WBOYオリジナル
2016-08-18 09:16:001274ブラウズ

IP に基づいて地理的位置を取得するツールの原理に非常に興味がありますか? IP の各数字は何を表しますか?サードパーティのインターフェイスを使用せずに、これをローカルで実行できますか?

返信内容:

IP に基づいて地理的位置を取得するツールの原理に非常に興味がありますか? IP の各数字は何を表しますか?サードパーティのインターフェイスを使用せずに、これをローカルで実行できますか?

ISPとは何ですか?簡単に言うと、チャイナテレコム、チャイナユニコム、チャイナモバイルなどのネットワークプロバイダーのようなものです。
サプライヤーを取得したら、オンラインに接続できます。オンラインにすると、モデムを通じて一時 IP (周期的変更) を取得できるようになります。
しかし、この IP は本当にランダムに与えられるのでしょうか?なぜそんなにランダムなのでしょうか?
APNIC (アジア太平洋インターネット ネットワーク インフォメーション センター) はこの組織です。これは、現在世界で活動している 5 つの地域インターネット レジストリの 1 つであり、クラス B IP アドレスを割り当てる国際組織です。インターネット運用をサポートするグローバルな配布および登録サービスを提供します。これらのメンバーには、インターネット サービス プロバイダー、National Internet Registry、および非営利の会員制組織の同様の組織が含まれます。 APNICは、56の経済圏を含むアジア太平洋地域を担当しています。

APNIC が 100 万個の IP アドレスを中国に割り当てたとします。その後中国に渡り、国内のトップ管理組織(誰なのかは知りませんが)を通じてチャイナテレコム、チャイナモバイル、チャイナユニコム、チャイナモバイルなどのトップISPに配信されます。その後、これらの ISP は独自のルールに従って全国のさまざまな州に再配布し、さらに市、郡、町などに再配布します。

IP地址每个数字并不代表什么,国内顶级ISP的IP分配是公开的,因此只有拿到这个库,才能根据用户的IP来知道用户是什么位置的由于这个库的更新并不及时,所以并不100%准确

更新

中国でより人気のある知財ライブラリは Innocence です。公式サイト:http://www.cz88.net/ 右上からダウンロードできます。インストール後、ディレクトリに IP 割り当てデータベースである .dat ファイルが作成されます。 PHP の使用と他の言語の使用を組み合わせた方法は、Baidu で見つけることができます。

PHP は、GeoIP 拡張機能とデータベースをインストールして、IP アドレスに基づいて訪問者の国/都市/緯度と経度を取得します
http://php.net/manual/zh/ref....
sudo apt-get install libgeoip-devsudo apt-get install libgeoip-dev
pecl install geoip-1.1.0pecl install geoip-1.1.0
注: ベータ版の場合、apt によってインストールされた PHP の場合は、バージョン番号を指定する必要があります。 php5-geoip パッケージを直接
php.ini Join:

リーリー

GeoLiteCity データベースの無料ダウンロード (解凍後 18MB):
http://dev.maxmind.com/geoip/...
wget http://geolite.maxmind.com/do...
gunzip GeoLiteCity.dat。 gz
sudo mkdir -v /usr/share/GeoIP
sudo mv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

テスト:
php -a

リーリー

PHPは「近くの人」機能を簡単に実装し、IPに基づいて経度と緯度を決定し、経度と緯度に基づいて距離を計算します

サードパーティのインターフェイスは使用しないでください。クエリの照合にはサードパーティが提供する IP ライブラリも使用する必要があります。
しかし、それは100%正確ではありません。

インターフェースとIPライブラリの両方を提供するサービスプロバイダーを推奨します: http://www.ipip.net/

それらはすべて独自の IP ライブラリを持っています。ローカルに IP ライブラリも持っていない限り

サードパーティのインターフェースは、ip获取地理位置信息, 其实是其本地保存了ip => address -info 的数据库映射, 因为他们的数据库里保存了大量的ip地理的位置との関係を通じてサードパーティのサービスを提供することができます

もちろん、自分で実装することもできますが、それほど大規模なデータベースのサポートがない可能性があります

それでもサードパーティのインターフェースをリクエストしたくない場合は、ダウンロードできます

無料のGeoIPデータベース

これはデータベースの問題です。ここにオープンソースコードがありますので、自分で調べてください。 http://git.oschina.net/lionsoul/ip2region

nginx+geo+fastcgi_params

phper を hnphper グループ 233415606 にようこそ

pecl install qqwry-beta
qqwry あなたにはそれが当然です。
IPは実際にはランダムに分割されるわけではありません。注意していれば見つかります。 IPセグメントと地域は密接に結びついています。次の都市とあなたの都市の IP は連続している可能性があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。