通過PowerShell獲取網域名稱whois資訊

2021-06-26 04:18:17 字數 2084 閱讀 5524

whois 簡單來說,就是乙個用來查詢網域名稱是否已經被註冊,以及註冊網域名稱的詳細資訊的資料庫(如網域名稱所有人、網域名稱註冊商、網域名稱註冊日期和過期日期等)。通過網域名稱whois伺服器查詢,可以查詢網域名稱歸屬者****,以及註冊和到期時間。通常情況下,whois資訊均為真實資訊,通過whois資訊可以找到網域名稱註冊人的很多真實資訊,像**,郵箱,ns記錄,是對**進行社工非常好的資訊**,對於安全從業人員來說,快速獲取whois資訊,能夠幫助自己掌握目標**的很多有用資訊。

而whois資訊通常是儲存在各級網域名稱序號產生器構中,平常我們要查詢whois資訊都是通過godaddy、name.com、萬網、新網等網域名稱註冊商**通過查詢頁面提交網域名稱進行查詢,既慢又不能批量查詢,太費勁了,這裡我就把我珍藏很久的乙個ps function貢獻給大家,這個指令碼支援140多種字尾的網域名稱進行查詢,尤其是一些生僻的域,找乙個能支援這個域註冊的註冊商就不容易了,現在你不需要再為這個事情發愁了。

老規矩,先上**,然後對關鍵操作進行解釋:

*****檔名:get-whois.ps1*****

function get-whois

}$eap, $erroractionpreference = $erroractionpreference, "stop"

$query = $query.trim()

if($query -match

"(?:\d\.)\d")

if(!$server)

} elseif(!$server) |

select -expand value | get-random

}if(!$server)

$maxrequery = 3

do "

if(!$noforward) "

# cache, in case we can't get an answer at the forwarder

if(!$cachedresult)

$server = $matches[1]

$query = ($query -split " ")[-1]

$maxrequery--

} else

} else

} finally

}} while ($maxrequery -gt 0)

$result

if($cachedresult -and ($result -split "`n").count -lt 5) :"

$cachedresult

}$erroractionpreference = $eap}}

函式裡定義了三個引數,兩個[string]型別,乙個[switch]型別,分別用於接收要進行whois查詢的網域名稱,指定whois網域名稱伺服器,以及是否允許將查詢請求**到其他網域名稱解析伺服器。隨後建立了乙個列舉值的雜湊表,目的是用於儲存不同網域名稱字尾和whois伺服器的對應關係,因為不同的網域名稱字尾對應的網域名稱資訊是儲存在不同的伺服器上的。需要強調的是像.com、.net、.org、.info這幾個註冊量特別大的網域名稱字尾指定了多個whois伺服器,避免查詢量過大無法有效返回結果的問題。

接下來通過new-object建立乙個system.net.sockets.tcpclient的tcp物件,連線上面指定的whois伺服器的43埠用於查詢whois資訊,在通過乙個system.io.streamreader物件接收whois資訊返回的資料,並對資料進行解析。除此之外再加上try{}cache{}finally{}進行容錯處理,在資料解析是也用到了正規表示式用於匹配目標字串。

程式的執行方法有如下四種:

PowerShell 通過 WMI 獲取系統服務

通過 win32 service 可以獲取系統啟動的服務 get wmiobject win32 service format list caption,state 執行 caption mobile device service state running caption ipod 服務 stat...

使用powershell管理域使用者

在域內環境中,常常需要使用命令列管理域使用者,此時可以使用active directory中的命令列工具dsquery.exe,或csve,以及ldifde等,其實,使用windows powershell來進行管理操作也是相當的方便。下面以建立使用者舉例 建立域使用者最基本的windows pow...

Powershell獲取磁碟資訊

使用powershell完成系統管理實在是太方便了,磁碟資訊獲取只需幾行 即可。1 diskcount get wmiobject class win32 diskdrive caption count2 獲取磁碟分割槽大小3 diskinfo get wmiobject class win32 l...