验证网站域名
在互联网不断被用于做好事和坏事的时代,验证网站域名的原创性可能很复杂。通过在Windows环境中使用Python Shell和Windows PowerShell,确定网站域名的可信度,我们确定网站域名的原创性。
这个话题可以引起那些想通过编码来验证域名的有效性和可信度的个人和/或团体的兴趣。
在本教程结束时,你将了解如何使用Python Shell检索DNS(域名系统)信息,在Windows PowerShell中运行curl 来抓取网站,以及如何在不断变化的技术空间中识别域名修改的复杂性。
总的来说,本教程将有助于完成反向域名查询。
前提条件
软件和硬件
- Windows操作系统(版本10)。
- Python Shell(任何与上述软件包和功能兼容的版本。这里将使用3.8.5)
- Windows PowerShell
- 互联网连接
- 互联网浏览器
知识
- Python编程语言
- 包/库的安装
- 使用 "PATH "或目录的工作
- 以管理员身份运行PowerShell
- 命令提示和它的结构
- 网站机制(术语包括但不限于:层、域和主机)。
- 网页脚本(HTML或JavaScript)
让我们开始使用Python Shell
将要使用的一些Python兼容包是:socket ,dns ,和whois 。让我们确保包的安装和功能,使用命令提示符窗口和指定的'PATH'或'ROOT'从文件夹到文件夹都是准确的,会稍微节省一些时间。
在socket ,有机会找到与域名相关的IP(互联网协议)地址,可以进行处理。
以下几行代码是在socket中处理的。
输入。
import socket
domainName = 'interviews-massiveinsights.digital'
ip = socket.gethostbyname(domainName)
print ("IP:", ip)
输出。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
socket.gaierror: [Errno 11002] getaddrinfo failed
>>> print ("IP:", ip)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ip' is not defined
屏幕截图。

因为域名由于非原创而被删除,所以显示了错误信息。
下面显示的是代码的功能和有效输出,因为域名是活动的,没有被删除。
输入。
import socket
domainName = 'massiveinsights.com'
ip = socket.gethostbyname(domainName)
print ("IP:", ip)
输出。
IP: 69.195.108.249
屏幕截图。

在DNS ,鉴于网站域名仍然活跃,显示了大量的资源信息。
这是一个很好的机会,可以使用变量中的for-loop来迭代和显示所有的结果。
输入。
import dns
import dns.resolver
ip = "69.195.108.249"
myResolver = dns.resolver.Resolver()
req = '.'.join(reversed(ip.split("."))) + ".in-addr.arpa"
myAnswers = myResolver.resolve(req, "PTR")
ans = [item for item in myAnswers]
ans
输出。
[<DNS IN PTR rdata: 69-195-108-249.unifiedlayer.com.>]
屏幕截图。

PTR(指针记录)值决定了该域名是否可以解析。
一些托管网站可能在其能力范围内持有多个域名,无论其意图如何,都可能无法解析该域名。另一个原因可能是,数据没有被添加到DNS记录中。
下面,在DNS 功能中还有更多的选项,揭示关于域名的额外信息,如名称服务器和DNS停放,这是建立网站互联网连接的几个关键因素。
不要使用IP地址,在myAnswers变量中使用域名,用 "NS"、"TXT "和/或 "MX "替换 "PTR"。
"NS "为域名服务器信息 输入。
myResolver = dns.resolver.Resolver()
myAnswers = myResolver.resolve('massiveinsights.com', "NS")
ans = [item for item in myAnswers]
ans
输出。
[<DNS IN NS rdata: ns3.bdm.microsoftonline.com.>, <DNS IN NS rdata: ns4.bdm.microsoftonline.com.>, <DNS IN NS rdata: ns1.bdm.microsoftonline.com.>, <DNS IN NS rdata: ns2.bdm.microsoftonline.com.>]
"TXT "为额外的互联网属性 输入: 输出: 额外的互联网属性。
myResolver = dns.resolver.Resolver()
myAnswers = myResolver.resolve('massiveinsights.com', "TXT")
ans = [item for item in myAnswers]
ans
输出。
[<DNS IN TXT rdata: "google-site-verification=34Jb2Tx28xLGRll4nwbUOq6dyu-P_VOD3OcO9qqDTKo">, <DNS IN TXT rdata: "mscid=w87OZ8XPKbefuE8BURYoqwPFO1CdSFjEo5RIqw7JWEL/fy7vVSsP/Q6Slgu5MYk2ihGpG6SHuF70r+a7X9J8cw==">, <DNS IN TXT rdata: "v=spf1 ip4:72.139.55.134 include:spf.protection.outlook.com -all">]
"MX "为数字邮件信息 输入: 输出: "MX "为数字邮件信息 输入:
myResolver = dns.resolver.Resolver()
myAnswers = myResolver.resolve('massiveinsights.com', "MX")
ans = [item for item in myAnswers]
ans
输出。
[<DNS IN MX rdata: 0 massiveinsights-com.mail.protection.outlook.com.>]
截图。


Whois,是一个持续记录网站的注册表,它是几个数据库中的一个,汇编和列出网站信息。
输入: 输出: ,是网站的连续记录登记处,是几个数据库之一,汇编和列出网站信息。
import whois
whois_info = whois.whois("interviews-massiveinsights.works")
print("Domain registrar:", whois_info.registrar)
print("WHOIS server:", whois_info.whois_server)
print("Domain creation date:", whois_info.creation_date)
print("Expiration date:", whois_info.expiration_date)
输出。
Domain registrar: None
WHOIS server: None
Domain creation date: None
Expiration date: None
屏幕截图。

空值将表明在网站的发展过程中进行了修改。
大多数原创网站会公开披露这些信息,如下图所示。
输入。
import whois
whois_info = whois.whois("massiveinsights.com")
print("Domain registrar:", whois_info.registrar)
print("WHOIS server:", whois_info.whois_server)
print("Domain creation date:", whois_info.creation_date)
print("Expiration date:", whois_info.expiration_date)
輸出
Domain registrar: GoDaddy.com, LLC
WHOIS server: whois.godaddy.com
Domain creation date: 2012-06-04 23:22:58
Expiration date: 2021-06-04 23:22:58
屏幕截图。

接下来是Windows PowerShell
在运行PowerShell之前,请确保右击并选择Run as Administrator 选项。
Windows PowerShell的结构是不同的。有细分的功能,可以选择网站语言中的特定内容。在命令的末尾选择并包括.Content ,这是非常必要的。
如下图所示,大括号用于调用一个网站的API来筛选允许的网站层,必须以curl 开始。
输入。
(curl host.io/careers-massiveinsights.works).Content
部分输出。
<!DOCTYPE html>
<html style="scroll-behavior: smooth;">
<head>
<title>careers-massiveinsights.works (Default page) - host.io</title>
<meta charset="utf-8">
<meta name="google" value="notranslate">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no">
<meta name="description" content="careers-massiveinsights.works (hosted on hostinger.com) details, including IP, backlinks, redirect information, and reverse IP shared hosting data">
屏幕截图。

向下滚动到text-primary 类层,显示所有与该IP地址相关的域。
部分输出。
<a href="/ip/45.88.197.212" class="text-primary">Show All →</a>
</div>
</div>
<div class="mt-2 sm:mt-0">
<a class="btn btn-secondary-hollow" href="/docs#apidomainsfieldvalue">View API →</a>
</div>
</div>
<ul class="text-sm flex flex-wrap">
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/careers-target.com" class="border-b border-gray-400" rel="nofollow">careers-target.com</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/careers-villagemd.com" class="border-b border-gray-400" rel="nofollow">careers-villagemd.com</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/interviews-villagemedical.com" class="border-b border-gray-400" rel="nofollow">interviews-villagemedical.com</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/interviews-hd-supply.online" class="border-b border-gray-400" rel="nofollow">interviews-hd-supply.online</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/hdsupply.us" class="border-b border-gray-400" rel="nofollow">hdsupply.us</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/medicalvillage.us" class="border-b border-gray-400" rel="nofollow">medicalvillage.us</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/careers-massiveinsights.works" class="border-b border-gray-400" rel="nofollow">careers-massiveinsights.works</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/morgeesmodcon.com" class="border-b border-gray-400" rel="nofollow">morgeesmodcon.com</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/asianausa.us" class="border-b border-gray-400" rel="nofollow">asianausa.us</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/interviews-massiveinsights.digital" class="border-b border-gray-400" rel="nofollow">interviews-massiveinsights.digital</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/sobeyscareer.com" class="border-b border-gray-400" rel="nofollow">sobeyscareer.com</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/interviews-sobeys.com" class="border-b border-gray-400" rel="nofollow">interviews-sobeys.com</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/interviews-target.com" class="border-b border-gray-400" rel="nofollow">interviews-target.com</a>
</li>
<li class="sm:w-1/3 w-1/2 border-b border-r px-6 py-4 truncate">
<a href="/hdsupply-ca.com" class="border-b border-gray-400" rel="nofollow">hdsupply-ca.com</a>
</li>
</ul>
</div>
屏幕截图。

当面对一个可能看起来真实可信的域名时,最好先做一些编码研究。
域名和一般的网站在启动互联网时都有识别自己的组件。
以下是一些网站组件。
- DNS记录
- 扩展购买,有多种选择,一应俱全。
- 网站托管提供商及其提供电子邮件地址的能力,可用于网站域名的任何目的。
这些组件可以被组合和修改,以复制一个已经存在的网站域名或创建一个完全独特的网站域名。
需要寻找的特殊一致性因素。
- 日期-时间戳值
- 空值或缺失值
- 虚拟主机提供商
- 扩展创建日期和购买
- IP地址
- 与IP地址相关的域名
匹配数值的时间如果可能的话,将数值与原始值进行比较,找到任何匹配的数值。如果没有,输出值可以提供深入了解。
匹配是什么意思?
最有可能与原始网站的域名有关。
不匹配意味着什么?
最有可能是原版的复制版本。小心,谨慎,并注意。
下次当你在使用互联网时遇到可疑的网站域名时,不妨试试这个教程。其结果可能是迷人的。
它可能会保护个人和/或团体免受黑暗网络的影响。