2012-04-10 18 views
-2

私はPythonで開発した独自のDNSネームサーバーを実行しています。私は登録されたドメイン名が "abc.in"と言っています。ドメインのネームサーバは、自分のコンピュータのIPアドレス(ISPから与えられたもの)に設定されています。誰かがドメイン名にアクセスするたびに、私は訪問者のISPのIPアドレスを取得しています。私は訪問者のIPアドレスを取得したい。実際、私はプロジェクトのような小さなCDNを作りたいと思っています。また、良い情報源を見つけることができません。訪問者のIPアドレスを取得することは可能ですか?Pythonで開発していますか?DNSリクエストから訪問者のIPアドレスを取得するにはどうすればよいですか?

私はCloudFlareのブログで、最初のDNS検索から訪問者の地理情報(IPアドレス)を取得していると読んでいました。

+1

どのように訪問者のISPのIPアドレスにアクセスしていますか?また、それがISPのアドレスであることをどのように知っていますか? –

+3

ユーザーのコンピュータは、使用するように構成されているDNSサーバー上でホスト名を検索します。通常、これはISP独自のDNSサーバーで、サーバーのアドレスを検索します。この場合、ユーザーのIPを取得する方法はありません。彼らのマシンはあなたのDNSサーバに全く連絡しません。 – geoffspear

+0

@ワオーブル:シナリオは何ですか?私はCloudFlareのブログで、訪問者のIPを取得しているので、質問を投稿したことを読んでいました。 – vedarthk

答えて

0

pythonでsocket関数を使うことができます。次のように

>>> socket.getaddrinfo 
+0

これは私に訪問者のISPのIPアドレスであり、訪問者のIPアドレスではありません。 – vedarthk

0

あなたが試みていることは、単に可能ではありません。最終的なクライアントではなく、リゾルバから常に接続を取得します。

+0

もちろん、最終的なクライアントが独自の再帰リゾルバを使用する場合は例外ですが、これはまれです。 – modelnine

+0

私はこの質問を投稿した理由は、エニキャストを認識していませんでした。また、私はリゾルバのアドレスを取得することを知っています。私は周りに別の方法がある場合は好奇心だった。 – vedarthk

+0

エニキャストは元の質問とは何の関係もありません。実際に正式にエニーキャストを使用するために私が知っている唯一のネームサーバーはいくつかの根源ですが、それはISPの決断とは関係ありません。 – modelnine

関連する問題