我试着在python中获得whois.我使用这个 http://code.google.com/p/pywhois/ 但它只在linux中运行.在Windows上运行它是否可行?目前我得到错误(因为内部linux命令whois使用)
我正在用 python 编写一个函数来获取像这个一样的过期域列表,但我找不到任何库可以做到这一点,对此有什么想法吗?
在下面的代码示例中,我试图获取一个whois语句.它偶尔会抛出超时异常.从PerlDoc开始,它说如果$Net::Whois::Raw::CHECK_FAIL = 1;设置为1then那么它应该返回undef.
我用eval封装了whois,所以它不会打破脚本,然后我添加了一个sleep然后我再次尝试获取whois.但它会发出警告" ...isn't numeric in numeric eq (==)".
所以再次,我取消运行,当它到达if它仍然执行那里的代码,并抛出我上面提到的错误.我怎样才能安全地评估它undef何时发生?
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
use Net::Whois::Raw;
#use Net::Whois::Parser;
use Data::Dumper;
$Net::Whois::Raw::OMIT_MSG = 2;
$Net::Whois::Raw::CHECK_FAIL = 1;
$Net::Whois::Raw::TIMEOUT = 30;
my $domainName = "google.com";
my $domainInfo;
while (1) {
eval {
$domain_info = whois($domainName);
};
if (undef == $domain_info) {
sleep (10);
eval {
$domain_info = whois($domainName);
};
}
}
Run Code Online (Sandbox Code Playgroud) I tried to execute this code:
import whois
w = whois.whois('webscraping.com')
print w
Run Code Online (Sandbox Code Playgroud)
And I got the error above. Why?
我需要把whois数据放在像这样的表中
我的脚本是从whois服务器提取数据,但每个域扩展的输出是不同的.
例如,对于.com域名,注册人详细信息以总地址形式.org出现,域名则以注册人名称,街道1,街道2,街道3等形式出现.
所以我无法将注册人详细信息作为一个单元放入db中.
我听说如果我们得到xml数据我们能够提取它,有人可以帮助解决这个问题吗?谢谢!.
我正在尝试制作一个whois检查脚本.
用户可以提交一些域名地址,然后在可用或不可用时收到消息.
$_POST['url'] 是用户提交的值.
我怎么知道这个变量是否是域名地址?
它应该为true以下领域提供:
http://google.com
www.google.com
http://www.google.com
google.com
Run Code Online (Sandbox Code Playgroud)
对于javascript也一样(我也使用ajax验证)?
使用PHP我希望descr:从RIPE IP地址范围的whois记录开始获取该行的内容,因此它们应该看起来像这样:
% This is RIPE NCC's Routing Information Service
% whois gateway to collected BGP Routing Tables
% IPv4 or IPv6 address to origin prefix match
%
% For more information visit http://www.ripe.net/ris/riswhois.html
route: 53.0.0.0/8
origin: AS31399
descr: DAIMLER-AS Daimler Autonomous System
lastupd-frst: 2011-12-08 23:18Z 195.66.224.97@rrc01
lastupd-last: 2012-01-25 15:18Z 203.119.76.3@rrc00
seen-at: rrc00,rrc01,rrc03,rrc04,rrc05,rrc07,rrc10,rrc11,rrc12,rrc13,rrc14,rrc15,rrc16
num-rispeers: 98
source: RISWHOIS
Run Code Online (Sandbox Code Playgroud)
所以我应该得到DAIMLER-AS Daimler Autonomous System结果.
如何使用最少的代码执行此操作,我在$ whois中有记录.
<?php
$whois = shell_exec('whois -h riswhois.ripe.net ' . $ip);
?>
Run Code Online (Sandbox Code Playgroud) 我可以通过 检查单个域的可用性whois abc123.com。
我不知道如何检查符合条件的整套域的可用性,例如XXX YYY. Z。其中 X 是任意 3 个相同的字母,Y 是任意 3 个相同的数字,Z 是 com、org 或 io 中的任意一个。喜欢 aaa111.org
这只是一个示例,但您明白了 -我想指定字符串、模式和结尾,并查看可用的内容。
我可以使用正则表达式进行这种字符串匹配,但我不知道如何将其应用于 shell 脚本。
我希望能够通过数组或正则表达式输入匹配条件,并输出所有匹配域的列表。
whois abc.com | grep "No match"在这里很有用,因为如果该域名未注册,则该字段为空;也许这可以成为剧本或类似内容的因素。它还将输出减少到一行,而不是whois默认输出的大量垃圾。
如果脚本可以与 bash、zsh 或 Fish 一起使用,我们将不胜感激。
您可能想知道,当您可以访问网站时,为什么还要从命令行执行此操作 - 原因是您正在寻找的域名通常在您实际搜索时就被盗用了。这是一种众所周知的现象,称为域名抢先交易,我今天就遇到了这种情况,因此我尝试了一种不经过注册商的本地自动化解决方案。
...
编辑回应评论:我不重视解决方案的“whois”方面,只是通过正则表达式或模式进行检查的能力。-- 编辑 2:事实证明“whois”对于避免误报是必要的;答案已修改以包括这方面。