linux whois命令参数及用法详解(linux查询域名或IP注册信息) |
本文标签:linux,whois 即whois命令会列出给出的域名的域名所有者的信息 。 最常用的两条命令 whois 202.102.224.68 //查询某个IP的注册信息 whois www.jb51.net //查询某个域名的注册信息 如果系统里没有安装whois 可以用以下命令安装 一般查询whois信息会去一些网站查,比如 whois.chinaz.com [root@jb51.net tmp]# yum list |grep whois jwhois.i386 3.2.3-8.el5 base 安装whois: [root@jb51.net tmp]# yum install jwhois.i386 语法 whois [参数] 查询 whois [ -h HostName ] [ . | ! ] [ * ] Name [ . . . ] Name [ . . . ] 参数代表用户标识、主机名、网络地址或用于执行目录搜索的alias.html target=_blank>别名 。 主要参数 . 强制执行“仅按名称”搜索,查找Name参数指定的名称 。 ! 显示在 Name 参数中指定的别名或句柄标识的帮助信息 。 * 显示一个组或组织的完整会员资格列表 。如果有很多成员,这可能要花费一些时间 。 ? 向 ARPANET 主机请求帮助 。 -h HostName 指定一个备用的主机名 。在 ARPANET 上的缺省主机名是 internic.net 。 通过指定 -h HostName 标志,可以联系其他主要的 ARPANET 用户名数据库(nic.ddn.mil) 。 -p 连接到指定端口 。 使用说明 /usr/bin/whois 命令搜索一个用户名目录并显示 Name 参数指定的用户标识和别名的信息 。whois 命令试图到达ARPANET主机 internic.net,在那里它检查用户名数据库以获取信息 。whois命令应该仅能由ARPANET上的用户使用 。 请参考RFC 812以获取更完整的信息和对whois命令的最近更改 。 注:如果您的网络是在美国国内网络(例如 ARPANET)上,则主机名和internic.net一样是硬编码的 。 whois 命令执行通配符搜索,查找与任选的 …(三个句点)之前的字符匹配的所有名称 。 实例 资料整理 www.jb51.net Linux安全网 复制代码 代码如下:# 要显示用户名称为 Smith 的 ARPANET 注册用户的相关信息,请输入 whois Smith # 要显示使用句柄 Hobo 的 ARPANET 注册用户的相关信息,请输入 whois !Hobo # 要显示用户名称为 John Smith 的 ARPANET 注册用户的相关信息,请输入 whois .Smith, John # 要显示用户名称或句柄以字母 HEN 开头的 ARPANET 注册用户的相关信息,请输入 whois HEN ... # 要获取关于 whois 命令的帮助信息,请输入 whois ? # 查询Google域名信息 whois google.com # 查询gooss.org的域名信息,可以看到whois命令将域名的所有人、地址、邮箱都列出来了 whois gooss.org 下面是一些实现whois命令功能的网管类网站的域名查询的系统: http://whois.911cha.com/linux-city.net.html http://whois.hichina.com http://whois.chinaz.com http://ewhois.cnnic.cn http://www.whois-search.com http://www.whois.com http://whois.domaintools.com http://www.whois.net http://who.is http://www.internic.net/whois.html http://www.nic.edu.cn/cgi-bin/reg/otherobj http://whois.domaintools.com/china.com http://www.101domain.com/whois-cn.php用PHP实现标准的IPWhois查询 由于Internet的历史原因,apin负责整个网络IP的整体规划以及北美区 还有部分非洲地区的IP分配管理,与此相应的是,whois.apin.net是IP whois的root server,标准的IP whois查询方法是,首先向whois.apin.net查询某个IP属于哪个大区,然后再向该区的whois 服务器查询此IP的whois详细信息 。 目前负责IPV4的大区 whois.arin.net 美洲区 北美,包含非洲地区的查询 whois.apnic.net 亚太区 包括亚洲和澳大利亚 whois.ripe.net 欧洲区 欧洲/中东(西亚)/北非 whois.lacnic.net 拉美区 拉丁美洲和加勒比海区域向某个whois服务器提交whois查询的过程 打开一个到whois服务器的43端口的连接,然后发送要查询的域名 和一个回车换行 。如果要查询多个域名,请用空格分开然后从sokect中读取结果 。最后服务器将自动断开连接 。 用PHP实现 验证IP(用 ip2long代替 ereg) 向whois.arin.net查询,如果数据库中没有相关信息,会给出一个Referral Server的URL,格式如下 ReferralServer:xxxx然后根据此信息,继续查询 。 whoisip.php 可以根据ip地址或域名查询whois信息 。 复制代码 代码如下:<?php include_once "lang.inc.php"; $IP = isset($_GET[ip])?$_GET[ip]:blank; if (-1 === ip2long($ip)) die(str_replace(%IP%, $IP, $Text[ip_invalid])); echo GetWhois($IP); function GetWhois($IP) { global $Text; $rootwhois = whois.arin.net; $buffer = str_replace(%SERVER%, $rootwhois, $Text[sock_connect]); $buffer1 = ReadSocket($rootwhois,$IP); if ($buffer1 !== ) { $whois = SubStrByTag("ReferralServer: whois://","n",$buffer1); //remove port number ":43"; if ( ($pos=strpos($whois,":")) !== FALSE) { $whois = substr($whois, 0,$pos); } if ($whois !== ) { $buffer .= str_replace(%SERVER%, $whois, $Text[sock_connect]); $buffer .= ReadSocket($whois,$IP); }else{ $buffer .= $buffer1; } } return nl2br($buffer); } function SubStrByTag($firstTag,$secondTag,&$longStr) { $firstPos = strpos ($longStr,$firstTag); $ret = ; if ($firstPos !== FALSE) { $secondPos = strpos ($longStr,$secondTag,$firstPos); if ($secondPos !== FALSE) { $firstPos += strlen($firstTag); $ret = substr($longStr,$firstPos,$secondPos-$firstPos); } } return $ret; } function ReadSocket($whois,$ip) { global $Text; $buffer = ; if (!$sock = fsockopen( $whois, 43, $errNum, $errStr, 20)) { $buffer = str_replace(%SERVER%, $whois, $Text[sock_fail]); }else{ fputs($sock,"$ipn"); //$buffer = fread($sock, 8192); while(!feof($sock)) $buffer.=fgets($sock, 8192); fclose($sock); } return $buffer; } ?> |