如何在本机用 PHP 自建一个域名查询接口 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
evakiss
V2EX    程序员

如何在本机用 PHP 自建一个域名查询接口

  evakiss 2015-12-21 09:27:59 +08:00 via Android 3720 次点击
这是一个创建于 3587 天前的主题,其中的信息可能已经有所发展或是发生改变。
在网上想查找域名查询接口的 api ,希望免费且不限频率,但找了很久都找不到,要么有频率限制要么收费,前几天在 V2 上问了这个问题,有 V 友说用 PHP 查询 whois 信息判断域名注册了没有,如果想要更快,可以先查询该域名的 NS 记录信息,如果有 NS 记录则该域名已经注册了,这样理论上可以快很多。因为对 PHP 熟悉,所以用 PHP 的 dns_get_record 函数来获取 NS 记录,关于 PHP 查找 whois 的类,网上一搜一大把,于是测试了一下:
电脑配置为 windows7,E1230 V3 cpu,8G 内存,四川电信 15M 带宽
循环遍历了几百次随机域名, php 的 dns_get_record 函数每个域名平均耗时在一分钟以上,出现了好几次挂掉现象,不得不重启 nginx 重试, PHP 的 whois 查询耗时也不低,一个域名耗时也在一两分钟左右。。。
如果把这个 dns_get_record 函数放在美国主机上是不是要快很多?另外,有没有更好的查询域名注册的办法,求众 V 友解答
12 条回复    2015-12-21 18:33:40 +08:00
BOYPT
    1
BOYPT  
   2015-12-21 09:38:32 +08:00
stream_set_timeout 设置一下查询超时。因为 php 进程被查询挂起消耗的主机资源比较多吧,是很容易弄挂掉
crab
    2
crab  
   2015-12-21 10:08:25 +08:00
不是直接 53 端口查询最快吗
evakiss
    3
evakiss  
OP
   2015-12-21 10:27:11 +08:00 via Android
@crab 谢谢,能详细一点吗?
Strikeactor
    4
Strikeactor  
   2015-12-21 10:57:51 +08:00
我没太懂,你的意思是,你用 dns_get_record 查域名的 NS ,平均每个域名查询时间在一分钟以上。。?
还是说是一分钟内你遍历了一个域名下面所有常见的子域名。。
imyip
    5
imyip  
   2015-12-21 11:06:28 +08:00   1
@crab 不是 43 端口吗?
/table>
evakiss
    6
evakiss  
OP
   2015-12-21 11:16:08 +08:00 via Android
@Strikeactor PHP 随机生成各种不同的域名比如 abc.com jdhf.con kwjd.com 等等,然后不停遍历这些域名 DNS ,平均每个域名耗时都很长很长
loqixh
    7
loqixh  
   2015-12-21 11:20:01 +08:00
这东西明显不应该用 php ,而应该用 c/c++使用队列查询
void1900
    8
void1900  
   2015-12-21 11:38:10 +08:00
whois 是有 whois 协议的,还有 whois 服务器:

http://www.cnblogs.com/happyday56/p/3722571.html

dns ? swoole 支持异步查询,速度绝对不慢:

http://wiki.swoole.com/wiki/page/186.html
Strikeactor
    9
Strikeactor  
   2015-12-21 12:05:59 +08:00
@evakiss 我觉得这个应该跟你本地网络环境有关。。我刚刚试了下,执行时间全都是毫秒级的,域名随手滚键盘,绝对没有本地缓存

不知道你用什么 IDE ,如果是 PHPstorm 这样支持远程调试的,建议找台亚洲的 VPS (香港,日本,新加坡等)搭一个远程调试环境。 xdebug 装上之后连断点都可以远程调,同时也能避免一些本地网络环境造成的坑爹错误

我之前用 stream 开 socket 就被本地网坑过。。
willis
    10
willis  
   2015-12-21 12:31:21 +08:00 via iPad
万网有免费的接口,楼主百度下
flashack
    11
flashack  
   2015-12-21 14:03:24 +08:00
建议楼主把 php 用作生成随机域名这件事上
查询注册情况,用 ename 的工具吧,开 10 线程

ps :搞五声?
crab
    12
crab  
   2015-12-21 18:33:40 +08:00 via iPhone
@imyip 对。 whois 43 。写错了。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     901 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 26ms UTC 22:01 PVG 06:01 LAX 15:01 JFK 18:01
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86