精华内容
下载资源
问答
  • 实现一个whois工具

    2015-05-18 23:21:00
    对于一个whois工具来说,第一步是获得whois服务器,一般而言,常见的whois有 whois.internic.net whois.apnic.net whois.edu.cn whois.twnic.net whois.nic.ad.jp whois.lacnic.net whois.ripe.net ...

    whois是一个查询注册域名的命令,如果要在Ubuntu上安装可以键入

    sudo apt-get install whois 
    

    一般whois的语法如下:

    whois oschina.net

    通过此命令就可以得到oschina.net域名的注册信息以及版权信息.

    whois并不是个复杂的东西,实际上,网络上有很多在线工具提供whois查询. 在Windows上并没有whois命令,ReactOS使用 Ted Felix(The Regents of the University of California.) 开发的whois程序,基于BSD协议. 这个whois不支持IPv6,用的是比较老的API,于是我将其重写了,代码如下:

    /*********************************************************************************************************
    * whois.cpp
    * Note: Phoenix whois tools
    * Date: @2015.05
    * Author: Force Charlie
    * E-mail:<forcemz@outlook.com>
    * Copyright (C) 2015 The ForceStudio All Rights Reserved.
    **********************************************************************************************************/
    #ifndef UNICODE
    #define UNICODE
    #endif
    
    #define WIN32_LEAN_AND_MEAN
    #include <winsock2.h>
    #include <ws2tcpip.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string>
    #include <codecvt>
    #include <vector>
    #pragma comment(lib,"ws2_32")
    
    
    static wchar_t whoisList[] =L"whois.internic.net";
    wchar_t *host = nullptr;
    wchar_t other[2048] = { 0 };
    int optset = 0;
    
    static bool Whois(const wchar_t *domian);
    static void usage()
    {
    	printf("usage: whois [-h hostname] name ....\n");
    }
    
    bool StringToWideString(const std::string& src, std::wstring &wstr)
    {
    	std::locale sys_locale("");
    	const char* data_from = src.c_str();
    	const char* data_from_end = src.c_str() + src.size();
    	const char* data_from_next = 0;
    
    	wchar_t* data_to = new wchar_t[src.size() + 1];
    	wchar_t* data_to_end = data_to + src.size() + 1;
    	wchar_t* data_to_next = 0;
    
    	wmemset(data_to, 0, src.size() + 1);
    
    	typedef std::codecvt<wchar_t, char, mbstate_t> convert_facet;
    	mbstate_t in_state = { 0 };
    	auto result = std::use_facet<convert_facet>(sys_locale).in(
    		in_state, data_from, data_from_end, data_from_next,
    		data_to, data_to_end, data_to_next);
    	if (result == convert_facet::ok)
    	{
    		wstr = data_to;
    		delete[] data_to;
    		return true;
    	}
    	delete[] data_to;
    	return false;
    }
    
    int main(int argc, char **argv)
    {
    	if (argc < 2)
    	{
    		usage();
    		return 0;
    	}
    	host = whoisList;
    	std::vector<std::string> domainV;
    	for (int i = 1; i < argc; i++){
    		switch (argv[i][0]){
    		case '-':
    		case '/':
    			if (strlen(argv[i]) < 2)break;
    			if (strcmp(&argv[i][1], "h") == 0){
    				if (i + 2 < argc)
    				{
    					std::string str = argv[i + 1];
    					std::wstring wstr;
    					if (!StringToWideString(str, wstr))
    						return 1;
    					wcsncpy_s(other, wstr.c_str(), 2048);
    					host = other;
    					i++;
    				}
    			}
    			break;
    		default:
    			domainV.push_back(argv[i]);
    			break;
    		}
    	}
    	char ch;
    	DWORD dwRetval;
    	ADDRINFOW *result = NULL;
    	ADDRINFOW hints;
    	ZeroMemory(&hints, sizeof(hints));
    	hints.ai_family = AF_UNSPEC;
    	hints.ai_socktype = SOCK_STREAM;
    	hints.ai_protocol = IPPROTO_TCP;
    	WSADATA wsaData;
    	auto iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
    	if ((dwRetval = GetAddrInfoW(host, nullptr, &hints, &result)) != 0){
    		wprintf(L"whois: GetAddrInfoW failed with error: %d\n", dwRetval);
    		WSACleanup();
    		return 1;
    	}
    	if (result == nullptr){
    		WSACleanup();
    		return 1;
            }
    	SOCKET sock;
    	sock = socket(result->ai_family, SOCK_STREAM, IPPROTO_TCP);
    	if (sock == INVALID_SOCKET) {
    		wprintf(L"socket function failed with error: %ld\n", WSAGetLastError());
    		FreeAddrInfoW(result);
    		WSACleanup();
    		return 1;
    	}
    	wchar_t ipstringbuffer[46];
    	DWORD ipbufferlength = 46;
    	WSAAddressToString(result->ai_addr, (DWORD)result->ai_addrlen, NULL,
    		ipstringbuffer, &ipbufferlength);
    	sockaddr_in sin;
    	memset(/*(caddr_t)*/&sin, 0, sizeof(sin));
    	sin.sin_family = result->ai_family;
    	ULONG iaddr;
    	InetPtonW(result->ai_family, ipstringbuffer, &iaddr);
    	sin.sin_addr.s_addr = iaddr;
    	sin.sin_port = htons(43);
    	iResult = connect(sock, (sockaddr *)&sin, sizeof(sin));
    	if (iResult == SOCKET_ERROR) {
    		wprintf(L"connect function failed with error: %ld\n", WSAGetLastError());
    		iResult = closesocket(sock);
    		if (iResult == SOCKET_ERROR)
    			wprintf(L"closesocket function failed with error: %ld\n", WSAGetLastError());
    		FreeAddrInfoW(result);
    		WSACleanup();
    		return 1;
    	}
    	auto i = domainV.size();
    	while (i-- > 1){
    		auto dm = domainV[i-1];
    		send(sock, dm.c_str(), dm.size(), 0);
    		send(sock, " ", 1, 0);
    	}
    	send(sock, domainV[0].c_str(), domainV[0].size(), 0);
    	send(sock, "\r\n", 2, 0);
    	wprintf(L"[%s]\n", host);
    	while (recv(sock, &ch, 1, 0) == 1)
    		putchar(ch);
    	FreeAddrInfoW(result);
    	WSACleanup();
    	return 0;
    }
    
    

    对于一个whois工具来说,第一步是获得whois服务器,一般而言,常见的whois有

    • whois.internic.net
    • whois.apnic.net
    • whois.edu.cn
    • whois.twnic.net
    • whois.nic.ad.jp
    • whois.lacnic.net
    • whois.ripe.net
    • whois.arin.net

    当然用户可以使用 -h参数指定whois服务器.

    原有的whois程序使用gethostbyname获取ip地址,但gethostbyname并不支持ipv6,而且被标记为废弃的函数,所以使用GetAddrInfoW 替代,GetAddrInfoW或得一个地址链表,我们只要第一个地址就行,我们将result的数据整理到sockaddr_in中,然后连接到ip的43端口,whois服务默认就是43端口.

    Windows不像BSD可以直接用fread fprintf之类,我们使用send和recv发送和接受数据. whois需要发送域名类似如下格式:

    domain.net domain.com\r\n
    

    空格分割域名,最后一"\r\n"结束.

    一个whois的实现就大体如此了.

    转载于:https://my.oschina.net/GIIoOS/blog/416491

    展开全文
  • Whois 是一款用于查询域名注册信息的小工具Whois 的功能并不多,界面也是相当的简单,只有一个搜索框和“Query(查询)”按键。所有的查询返回结果会显示在下面的空白窗口中。Whois 查询的信息主要包括域名...

     

    “找出域名后的真实信息”

    无天


    想要知道隐藏在一个IP或域名后边的关于一个公司或个人的真实信息吗?有兴趣的话,也许 Whois 或多或少可以让你有所了解。Whois 是一款用于查询域名注册信息的小工具。

    Whois 的功能并不多,界面也是相当的简单,只有一个搜索框和“Query(查询)”按键。所有的查询返回结果会显示在下面的空白窗口中。Whois 查询的信息主要包括域名和IP地址、各种注册信息等。

    Whois 的功能其实在很多网站上也带有,但是相信使用一款这样的桌面小软件,要比登录网站再查询要方便的多了。

     

    下载 免费软件

     

    Whois

    展开全文
  • Whois查询工具

    2008-01-03 16:52:53
    自己写的Whois查询工具,可以添加服务器,查询IP地址和域名信息
  • whois查询小工具

    2010-07-22 17:45:26
    whoiscl是windows下的whois查询小工具; whoiscl是windows下的whois查询小工具
  • 牛B的whois查询工具,任何大型网站都可以
  • whois 网站查询查询whois信息 python 脚本#首先我们要导入requests模块和bs4模块里的BeautifulSoup和time模块import requestsimport timefrom bs4 import BeautifulSoup#设置好开始时间点strat=time.time()class G:...

    whois 网站查询

    查询whois信息 python 脚本

    #首先我们要导入requests模块和bs4模块里的BeautifulSoup和time模块

    import requests

    import time

    from bs4 import BeautifulSoup

    #设置好开始时间点

    strat=time.time()

    class G:

    rb1=None

    rb2=None

    rb3=None

    def chax():

    #询问用户要查询的域名

    lid=input('请输入你要查询的域名:')

    #设置浏览器头过反爬

    head={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

    #设置好url

    url="http://site.ip138.com/{}/".format(lid)

    urldomain="http://site.ip138.com/{}/domain.htm".format(lid)

    url2="http://site.ip138.com/{}/beian.htm".format(lid)

    url3="http://site.ip138.com/{}/whois.htm".format(lid)

    #打开网页

    rb=requests.get(url,headers=head)

    G.rb1=requests.get(urldomain,headers=head)

    G.rb2=requests.get(url2,headers=head)

    G.rb3=requests.get(url3,headers=head)

    #获取内容并用html的方式返回

    gf=BeautifulSoup(rb.content,'html.parser')

    print('[+]IP解析记录')

    #读取内容里的p标签

    for x in gf.find_all('p'):

    #使用text的内容返回

    link=x.get_text()

    print(link)

    chax()

    gf1=BeautifulSoup(G.rb1.content,'html.parser')

    print('[+]子域名查询')

    for v in gf1.find_all('p'):

    link2=v.get_text()

    print(link2)

    gf2=BeautifulSoup(G.rb2.content,'html.parser')

    print('[+]备案查询')

    for s in gf2.find_all('p'):

    link3=s.get_text()

    print(link3)

    gf3=BeautifulSoup(G.rb3.content,'html.parser')

    print('[+]whois查询')

    for k in gf3.find_all('p'):

    link4=k.get_text()

    print(link4)

    end=time.time()

    print('查询耗时:',end-strat)

    展开全文
  • 一款PHP域名WHOIS查询小工具 v1.0,再重新写一遍加深记忆。今天整理了这个比较简单的PHP域名WHOIS查询小工具,源码比较简单,顺带放出来以便同样学习脚本的朋友一起研究,以及我们也可以把该工具上传到自己的网站中...
  • 在线WHOIS查询工具简介 1、采用BootStrap V3框架 2、能够查询COM、ORG、NET常规域名后缀WHOIS信息 3、适合用于个人网站常用工具 在线域名WHOIS查询工具(PHP版)页面展示  相关阅读 同类推荐:站长常用源码
  • Domain Name: java.comRegistry Domain ID: 2847885_DOMAIN_COM-VRSNRegistrar WHOIS Server: whois.markmonitor.comRegistrar URL: ...

    Domain Name: java.com

    Registry Domain ID: 2847885_DOMAIN_COM-VRSN

    Registrar WHOIS Server: whois.markmonitor.com

    Registrar URL: http://www.markmonitor.com

    Updated Date: 2020-05-04T02:20:02-0700

    Creation Date: 1996-06-05T21:00:00-0700

    Registrar Registration Expiration Date: 2021-06-04T00:00:00-0700

    Registrar: MarkMonitor, Inc.

    Registrar IANA ID: 292

    Registrar Abuse Contact Email: abusecomplaints@markmonitor.com

    Registrar Abuse Contact Phone:*******95770

    Domain Status: clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited)

    Domain Status: clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited)

    Domain Status: clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited)

    Domain Status: serverUpdateProhibited (https://www.icann.org/epp#serverUpdateProhibited)

    Domain Status: serverTransferProhibited (https://www.icann.org/epp#serverTransferProhibited)

    Domain Status: serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited)

    Registry Registrant ID:

    Registrant Name: Domain Administrator

    Registrant Organization: Oracle Corporation

    Registrant Street: 500 Oracle Parkway M/S 501ip3,

    Registrant City: Redwood Shores

    Registrant State/Province: CA

    Registrant Postal Code: 94065

    Registrant Country: US

    Registrant Phone: +1.6505062220

    Registrant Phone Ext:

    Registrant Fax: +1.6505062120

    Registrant Fax Ext:

    Registrant Email: domain-contact_ww_grp@oracle.com

    Registry Admin ID:

    Admin Name: Domain Administrator

    Admin Organization: Oracle Corporation

    Admin Street: 500 Oracle Parkway M/S 501ip3,

    Admin City: Redwood Shores

    Admin State/Province: CA

    Admin Postal Code: 94065

    Admin Country: US

    Admin Phone: +1.6505062220

    Admin Phone Ext:

    Admin Fax: +1.6505062120

    Admin Fax Ext:

    Admin Email: domain-contact_ww_grp@oracle.com

    Registry Tech ID:

    Tech Name: Domain Administrator

    Tech Organization: Oracle Corporation

    Tech Street: 500 Oracle Parkway M/S 501ip3,

    Tech City: Redwood Shores

    Tech State/Province: CA

    Tech Postal Code: 94065

    Tech Country: US

    Tech Phone: +1.6505062120

    Tech Phone Ext:

    Tech Fax: +1.6505062120

    Tech Fax Ext:

    Tech Email: network-contact_ww_grp@oracle.com

    Name Server: a13-65.akam.net

    Name Server: a20-65.akam.net

    Name Server: a11-64.akam.net

    Name Server: a24-67.akam.net

    Name Server: a22-66.akam.net

    Name Server: a1-250.akam.net

    DNSSEC: unsigned

    URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/

    >>> Last update of WHOIS database: 2021-02-15T18:55:29-0800 <<<

    For more information on WHOIS status codes, please visit:

    https://www.icann.org/resources/pages/epp-status-codes

    If you wish to contact this domain’s Registrant, Administrative, or Technical

    contact, and such email address is not visible above, you may do so via our web

    form, pursuant to ICANN’s Temporary Specification. To verify that you are not a

    robot, please enter your email address to receive a link to a page that

    facilitates email communication with the relevant contact(s).

    Web-based WHOIS:

    https://domains.markmonitor.com/whois

    If you have a legitimate interest in viewing the non-public WHOIS details, send

    your request and the reasons for your request to whoisrequest@markmonitor.com

    and specify the domain name in the subject line. We will review that request and

    may ask for supporting documentation and explanation.

    The data in MarkMonitor’s WHOIS database is provided for information purposes,

    and to assist persons in obtaining information about or related to a domain

    name’s registration record. While MarkMonitor believes the data to be accurate,

    the data is provided "as is" with no guarantee or warranties regarding its

    accuracy.

    By submitting a WHOIS query, you agree that you will use this data only for

    lawful purposes and that, under no circumstances will you use this data to:

    (1) allow, enable, or otherwise support the transmission by email, telephone,

    or facsimile of mass, unsolicited, commercial advertising, or spam; or

    (2) enable high volume, automated, or electronic processes that send queries,

    data, or email to MarkMonitor (or its systems) or the domain name contacts (or

    its systems).

    MarkMonitor reserves the right to modify these terms at any time.

    By submitting this query, you agree to abide by this policy.

    MarkMonitor Domain Management(TM)

    Protecting companies and consumers in a digital world.

    Visit MarkMonitor at https://www.markmonitor.com

    Contact us at +1.8007459229

    In Europe, at +44.02032062220

    ----

    展开全文
  • WHOIS信息批量查询域名WHOIS信息(包括注册商,域名服务器,注册状态,注册时间,过期时间,更新时间,联系方式等)功能说明:1、批量查询域名WHOIS信息(包括注册商,域名服务器,
  • PHP脚本搭建的在线WHOIS域名查询工具。具备以下几个优势: 第一,没有使用数据库。因为作为个人站长来说,数据库的工具会导致空间增加,一般站长的数据库都比较小,简单的工具不需要这么复杂。 第二,安装容易。就...
  • B114NET在线域名WHOIS查询工具(PHP版),使用方便,上传即可使用。
  • 改进描述: 1、查询历史显示优化,重复记录只...1、输入域名查询Whois信息; 2、DIV CSS模板方便修改; 3、免费、开源程序。 配置参数设置技巧:调整查询历史周期,默认24小时,可编辑Textclass.php第310行。
  • WHOIS查询检索,域名信息查询工具软件
  • 使用一款专业查询域名whois工具,可以大大提升你的工作效率,下面为大家总结推荐几款最好用的批量查询域名whois,可供大家选择使用! 如何查询域名whois?域名whois查询能获得哪些信息 一:whios介绍 通过whois来...
  • DomainHostingView是一个DNS和whois查询实用工具,通过一系列的DNS和WHOIS查询收集有关域的广泛的信息,并生成可以在任何Web浏览器显示HTML格式的报告。 DomainHostingView报告显示的信息包括:托管公司或数据中心,...
  • Quick Domain WHOIS-crx插件

    2021-04-01 21:03:34
    一个简单的WHOIS工具。 单击快速检查域以验证谁拥有它们。 快速域WHOIS是一个小工具,可用于检查域,以验证谁直接又快速地拥有了他们,而无需验证码。 只需单击一下,就不会离开您的当前页面。 我们的工具可直接从您...
  • 域是工具- etools.io。 用于显示网站的Whois的简单扩展。 通过etools.io 支持语言:English
  • 看版本,解压后放在"C:/Windows/system32/"里面,就可以在cmd命令提示符里使用whois命令查看网站信息了
  • 例如, 如果您浏览http://www.example.com/ fatechan/moe 并单击该按钮, 则会在新选项卡中打开http://en.asuka.io/whois/example.com.我们尊重您的隐私. 除非有法律要求, 否则我们绝不会与任何个人或组织分享个人...
  • 它通过Google、Bing、PGP、LinkedIn、Baidu、Yandex、People123、Jigsaw、Shodan等公开资源整理收集这些信息。... 收集到了邮箱和子域名 whois信息 DirBrute DirBrute目录扫描工具 DirBrute.py 目录
  • 一个简单的WHOIS工具。单击快速检查域以验证谁拥有它们。 快速域WHOIS是一个小工具,可用于检查域,以验证谁直接又快速地拥有了他们,而无需验证码。 只需单击一下,就不会离开您的当前页面。 我们的工具可直接从您...
  • GNC Whois工具可让您找出谁拥有一个域名,或者该域名是否可用于注册。 您可以查看: ●域可用性信息 ●Doman创建,注册和到期信息 ●域名状态 ●域名注册商信息(域名所在的注册商) ●域名联系信息。这可以告诉你...
  •  Whois信息查询——新工具 作者:ranknow.cn 发布时间:2009-01-15 点击量:5349  简单来说,WHOIS就是一个用来查询已经被注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和...
  • DNS是大家网络生活中每时每刻都碰到并使用的工具。本文通过几个随处可得的简单工具来测试并troubleshooting DNS,希望能够通过这些测试和troubleshooting过程,加深对DNS的理解。 ^_^ PING: ping是一个所有操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 753
精华内容 301
关键字:

whois工具