Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux命令 > 系统管理 > » 正文

linux whois命令参数及用法详解--linux查询域名或IP注册信息

来源: 未知 分享至:

 

Linux下whois.html' target='_blank'>whois命令令用来查找并显示指定帐号(或域名)的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。即whois命令会列出给出的域名的域名所有者的信息。

最常用的两条命令

whois  202.102.224.68  //查询某个IP的注册信息

whois  www.linuxso.com   //查询某个域名的注册信息

如果系统里没有安装whois 可以用以下命令安装

一般查询whois信息会去一些网站查,比如 whois.chinaz.com

[root@linuxso.com tmp]# yum list |grep whois
jwhois.i386                              3.2.3-8.el5                   base    

安装whois:
[root@linuxso.com tmp]# yum install jwhois.i386

语法
whois [参数] 查询
whois [ -h HostName ] [ . | ! ] [ * ] Name [ . . . ]
Name [ . . . ] 参数代表用户标识、主机名、网络地址或用于执行目录搜索的别名。

主要参数
. 强制执行“仅按名称”搜索,查找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.linuxso.com   Linux安全网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 要显示用户名称为 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实现

  1. 验证IP(用 ip2long代替 ereg)
  2. 向whois.arin.net查询,如果数据库中没有相关信息,会给出一个Referral Server的URL,格式如下
    ReferralServer:xxxx

    然后根据此信息,继续查询。

whoisip.php

可以根据ip地址或域名查询whois信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?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; 
}
?>

Tags: linux命令
分享至:
最新图文资讯
1 2 3 4 5 6
相关文章列表:
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史