whois查询:如何和Whois++网连接查询



在Whois结构中由客户负责进行网状漫游每个主机仅通知客户和它相邻主机是什么这个协议倒不是复杂客户打开到台服务器连接发送查询请求接收应答关闭连接客户在接收到应答后进行分析然后决定下个联系哪台主机这样使得客户必须有种算法使得客户查询主机没有重复而且能够尽快找到要找主机

每个Whois客户应该被配置为自动和个特定Whois服务器联系这个默认服务器可能有这样那样要求但是最基本要求就是最好是本地服务器

在接收到服务器应答后如果命中数大于0则把结果返回用户如果客户被要求和个或多个服务器进行通信客户要能够知道这些服务器指针是什么

查询思路方法有两种种是扩充查询种是使用服务器目录如果命中数为0或用户希望扩展查询客户机应该进行扩展查询它只需要向服务器发送下面两种消息即可:\'polled-by\'或\'polled-for\'客户可以向新指定主机进行扩充查询

客户必须保留查询过服务器不要查询过服务器再查询

3.1.1. 优化网络

如果A希望经常使用BWHOIS服务器A会希望通过创建个本地索引服务器将B服务器成为本地可用当A客户通过扩充查询希望查询B时解析速度就会快得多

Whois网络已经不是个树了B和F的间已经建立了直接通道这样查询速度就快得多了不用在查询完B后查询A再查询C最后再查询FB和F已经建立了联结所以当客户只需要查询其中的数据时需要指时要是哪不然会返回B和F结点内容在客户方还可以使用黑名单思路方法将查询中些服务器屏蔽掉访问这些服务器代价太大或其它原因不愿意让用户访问这些服务器

3.1.2. 客户使用算法

Query := 需要查询数据;
QueriedServers := {};
AnswerList := {};
OriginalServers := { 客户所知服务器 };
while OriginalServers非空 do:
ServerList = OriginalServers;
while ServerList非空 do:
Server := ServerList[1];
Server未包括在QueriedServers中 then do:
send Query to Server;
Answer := 从Server返回响应;
将ServersToAsk附加到ServerList;
将Server从ServerList删除;
将Answers附加到AnswerList;
end;
done;
应该扩充查询 then do:
ServerList := OriginalServers;
OriginalServers := {};
while ServerList非空 do:
Server := ServerList[1];
发送Polled-For-Query到Server;
Answer := 从Server返回响应;
将Answer附加到OriginalServers;
将Server从ServerList删除;
end;
done;
done;
显示AnswerList;

3.2. 服务器目录

第 2个寻找正确服务器思路方法是使用个单独服务我们称为服务器目录服务器目录实际上是个特殊Whois服务器这个服务器内包括了所有服务器上信息用户在查询前先查询些服务器由此服务器指出应该查询哪个服务器未来技术可能允许客户选择服务器而不是由服务器

3.2.3. 例子

下面是个客户和服务器联系例子

> % 220-This is services.bunyip.com running Bunyip-Whois: DIGGER 1.0.5
> % 220 Ready to go!
< template=serverhandle and bunyip
> % 200 Search is executing
> # FULL SERVERHANDLE BUNYIPCOM01 BUNYIPCOM01
> SERVER-HANDLE: BUNYIPCOM01
> HOST-NAME: services.bunyip.com
> HOST-PORT: 63
> ADMIN-NAME: Patrik Faltstrom
> ADMIN-EMAIL: [email protected]
> ORGANIZATION-NAME: Bunyip Information s Inc.
> DESCRIPTION: USER information
> DESCRIPTION: Directory of Servers
> DESCRIPTION: Toplevel Index server in the world
> MENU-ITEM: World (Bunyip Information s inc)
> CITY: Montreal
> COUNTRY: Canada
> # END
>
> # FULL SERVERHANDLE BUNYIPCOM01 BUNYIPCOM02
> SERVER-HANDLE: BUNYIPCOM02
> HOST-NAME: services.bunyip.com
> HOST-PORT: 7778
> ADMIN-NAME: Patrik Faltstrom
> ADMIN-EMAIL: [email protected]
> ORGANIZATION-NAME: Bunyip Information s Inc.
> DESCRIPTION: USER information
> MENU-ITEM: Bunyip Information s
> CITY: Montreal
> COUNTRY: Canada
> # END
>
> % 226 Transaction complete
> % 203 Bye, bye

4. 缓冲

客户可以缓冲它从服务器取得信息客户自行选择缓冲多长时间更新

4.1. 缓冲Whois服务器主机名

下面是个缓冲算法:

response := 从服务器A获得servers-to-ask响应
IP-address := 寻找DNS中response.hostnameIP地址
连接IP地址上端口
连结失败 {
连结服务器目录服务器
查询主机
response := 由服务器目录服务器获得响应
IP-address := 寻找DNS中response.hostnameIP地址
connect to ip-address at port response.portnumber
连结失败 {
消息返回
}
}
查询这个新服务器

5. 安全问题

客户应该维护个黑名单在网络上可能有假Whois服务器旦发现这样服务器应该把它加入黑名单以后不再查询在扩充查询时比较费时应该允许用户在操作进行中退出

Tags:  ipwhois查询 whois信息查询 域名whois查询 whois查询

延伸阅读

最新评论

发表评论