簡體   English   中英

我如何通過PHP(反向IP)知道IP是否托管站點

[英]How i can know if the IP host a sites or not by PHP (Reverse IP)

我如何通過PHP(反向IP)知道IP是否托管站點?

例如 :

該IP 62.75.138.253擁有5個站點www.earthwar.de,video-4u.com ..ect

如果我擁有IP,我只需要知道它是否托管一個網站

我認為gethostbyaddr在這里沒有用

有人可以幫忙嗎?

我如何通過PHP知道IP托管一個域?

沒有一個單一的功能:這是一項不平凡的任務。 gethostbyaddr()將為您提供一個域名,該域名被配置為IP的主機名。 這就是您可以輕松獲得的所有信息。

網上有多家公司收集域名,解析域名並將信息存儲在數據庫中。 可能有一些付費服務可以為您提供對API的訪問權限,但這似乎並不是您想要的。

我是host.io的創建者,它為您顯示托管在同一IP地址上的所有域的列表(以及鏈接到該域的域的列表,以及更多)。 例如,以下是與stackoverflow.com使用相同IP托管的域的列表: https : //host.io/stackoverflow.com

正如您所發現的,獲取單個域的IP地址只是解決問題的一小部分。 您無法編寫任何命令或腳本來執行此操作-您需要將自己的域數據庫構建為IP地址。

首先需要獲取(或創建)所有可用域名的列表。 目前大約有2.5億。 下一步是將所有這些域解析為IP地址。 然后,您需要將所有這些域到IP對存儲在數據庫中,然后可以查詢以獲取同一IP上所有域的列表。 然后,您需要定期執行此操作以確保它保持最新狀態。

舉一個完整的例子,讓我們創建一個具有4個域的文件並將其解析為IP地址:

$ cat domains.txt
facebook.com
fb.com
stackoverflow.com
stackexchange.com

# Let's resolve the domains to IPs with dig - could use nslookup or similar
$ cat domains.txt | xargs -I% bash -c "dig +short % | tail -n1" > ips.txt
31.13.76.68
31.13.76.68
151.101.129.69
151.101.193.69

# Let's combine the domains and IPs using paste
$ paste domains.txt ips.txt > combined.tsv
$ cat combined.tsv
facebook.com    31.13.76.68
fb.com  31.13.76.68
stackoverflow.com   151.101.129.69
stackexchange.com   151.101.129.69

# Let's create a DB table and import the data, and write a query 
# to find any domains in our dataset that are hosted on the same 
# domain as stackoverflow.com

$ psql $DB_URL

=> create table details (domain text, ip text);
=> \copy details from ~/combined.tsv;

=> select domain from details where ip = (select ip from details where domain = 'stackoverflow.com');
      domain
-------------------
 stackoverflow.com
 stackexchange.com
(2 rows)

這樣便可以構建自己的數據庫,也可以讓其他人完成艱苦的工作並使用他們的數據。 我們就是這樣的提供者之一,但還有其他類似的提供者,例如yougetsignal和domaintools。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM