2011-07-07 68 views
3

我知道Python中的gethostbyaddr,這對我有些用處。我想獲得更多關於IP地址的信息,就像可以在各種網站上找到的那樣,例如誰擁有該IP地址,原籍國,等等。我需要以編程方式完成此項目。在Python中,獲取有關IP地址的更多信息

是否有Python的內置命令,或者我需要訪問某些包含此類信息的數據庫,還是有任何Python API? Python不是我的母語,所以我不太瞭解Python如何處理這樣的問題。

回答

5

您可以使用pywhois來檢索whois信息,即主辦組織/人員的姓名和聯繫信息。請注意,whois信息質量各不相同;通常,域名(與gethostbyaddr一起找到)會比IP地址獲得更好的結果。

如果您只需要地理信息,請使用pygeoip。它通過在數據庫中查找IP地址來映射IP地址,例如MaxMind提供的IP地址。請注意,免費的「Lite」版本只會給你一個粗略的想法,而20-50km的錯誤並不少見。

+0

「請注意,免費的」Lite「版本只會給你一個粗略的想法,而20-50km的錯誤並不少見」Hehehe,這遠遠超過我的需要。我不打算在這裏訪問任何人的房子:)我認爲選項1會更好地工作,如果它做它聲稱的和我期望的whois程序做。當我們說話時,我正在與svn覈對。感謝你的回答。 – demongolem

+0

我會保持最佳答案,但只是爲了讓大衆知道,pywhois在Python 3.x中看起來不太好。 – demongolem

+0

@demongolem您確定首先需要whois數據嗎?你的第一個評論聽起來像你需要的是國家。爲此,基於IP的地理定位是更快更好的解決方案。 – phihag

0

好的,這是我的答案。我將致力於清理我的機器上python的Python 3.x版本,並希望在下週內將我的代碼提交給Subversion存儲庫。從我使用的IP地址來看,首先通過phihag建議將gethostbyaddr應用於IP地址,然後通過pywhois進行檢索,我的成功率大約爲78%。我會讓讀者自己決定這個比率是否足夠滿足他們的特定應用。