我想运行检查以查看是否已注册指定的URL。作为测试是否已注册的简单代理,我将检查HTML响应代码。 200,300可能==已注册,4xx可能==未注册。
我知道这个逻辑可能存在漏洞。我的问题是,如果cURL有办法整齐地返回HTML响应代码?我目前可以打印出整个标题,我想知道是否需要自己解析我想要的位,或者它是否可以将整个标题作为数组返回。
直接回答或一个很好的选择都是受欢迎的。
答案 0 :(得分:3)
这个逻辑中最大的漏洞就是因为域名注册并不意味着它运行了一个Web服务器。
判断域名是否已注册的最佳方法是进行whois检查。在PHP中,有PEAR::Net_Whois库。
您逻辑中的第二大漏洞是,如果某个域响应请求 - 无论是200,300还是404,它肯定会被注册。但是,如果您只是想检查响应代码,那么正确的方法是执行HTTP HEAD请求,该请求告诉服务器您不需要完整响应,只需要标题。您可以将CURLOPT_CUSTOMREQUEST
设置为'HEAD'
来使用PHP的cURL library:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD');
答案 1 :(得分:0)
看看checkdnsrr()
。
在DNS中搜索与主机对应的类型类型的记录。
bool checkdnsrr ( string $host [, string $type = "MX" ] )
host
可以是点分四位表示法中的IP地址,也可以是主机名。
type
可以是以下任何一种:A,MX,NS,SOA,PTR,CNAME,AAAA,A6,SRV,NAPTR,TXT或ANY。