枚举广域网上的HTTP服务器的讨论,该怎么处理
枚举广域网上的HTTP服务器的讨论
象搜索引轻公司,他们要在网上搜索各种网页怕是要先枚举HTTP服务器吧(该不会它可以访问标准委员会所掌握的所有域名数据库吧?)。
如果可以访问一个所有HTTP服务器的域名列表,从它上面一一遍历过去,用HTTP协议把服务器上的HTML文件下载来就完成原始资料的准备了吧。
所以如果可以枚举出所有的HTTP服务器域名,接下来的下载网页的问题就有解决的方案了。
用getaddrinfo()虽然可以做到查询一个服务器有没有HTTP服务,但是麻烦的就是需要指定服务器地址,比如说:www.****.net或者一个IP。虽然不知道域名,但IP地址倒可以枚举的。如果可以找到对于有HTTP服务的服务器,它的IP与域名的对应方法,问题就解决了。
不知道有没有谁知道怎么从HTTP服务器的IP来查询该服务器的域名的方法。
------解决方案--------------------
反向域名解析协议
int getnameinfo(
const struct sockaddr* sa,
socklen_t salen,
TCHAR* host,
DWORD hostlen,
TCHAR* serv,
DWORD servlen,
int flags
);
------解决方案--------------------
反向解释当然是一种方法,但个人觉得不太科学!!!
因为很多网址可以共用IP的,所以搜索引擎都是一个主机列表开始,取回页面后分析链接,然后得到其它主机,如果到某个主机的链接比较多的话,搜索引擎算法会认为其指标较高,会先抓,多抓其上的页面!
对于专门有影响的行业网站,搜索引擎还会专门联系,找对方提供需要抓取的URL列表!
象搜索引轻公司,他们要在网上搜索各种网页怕是要先枚举HTTP服务器吧(该不会它可以访问标准委员会所掌握的所有域名数据库吧?)。
如果可以访问一个所有HTTP服务器的域名列表,从它上面一一遍历过去,用HTTP协议把服务器上的HTML文件下载来就完成原始资料的准备了吧。
所以如果可以枚举出所有的HTTP服务器域名,接下来的下载网页的问题就有解决的方案了。
用getaddrinfo()虽然可以做到查询一个服务器有没有HTTP服务,但是麻烦的就是需要指定服务器地址,比如说:www.****.net或者一个IP。虽然不知道域名,但IP地址倒可以枚举的。如果可以找到对于有HTTP服务的服务器,它的IP与域名的对应方法,问题就解决了。
不知道有没有谁知道怎么从HTTP服务器的IP来查询该服务器的域名的方法。
------解决方案--------------------
反向域名解析协议
int getnameinfo(
const struct sockaddr* sa,
socklen_t salen,
TCHAR* host,
DWORD hostlen,
TCHAR* serv,
DWORD servlen,
int flags
);
------解决方案--------------------
反向解释当然是一种方法,但个人觉得不太科学!!!
因为很多网址可以共用IP的,所以搜索引擎都是一个主机列表开始,取回页面后分析链接,然后得到其它主机,如果到某个主机的链接比较多的话,搜索引擎算法会认为其指标较高,会先抓,多抓其上的页面!
对于专门有影响的行业网站,搜索引擎还会专门联系,找对方提供需要抓取的URL列表!