回答
如果你想要得到的IP地址,這樣你就可以與地址的工作,你可以這樣做:
$ips = [System.Net.Dns]::GetHostAddresses("yourhosthere")
可以遍歷他們像這樣:
[System.Net.Dns]::GetHostAddresses("yourhosthere") | foreach {echo $_.IPAddressToString }
服務器可以有多個IP,所以這將返回一個IP數組。
$ ip = [System.Net.Dns] :: GetHostAddresses(「yourhosthere」)[0]將確保您只有一個IP地址,如果您確定它會解決 – 2014-11-10 14:36:46
從powershell中的主機名獲取IPv4和IPv6地址的解釋是here。另外,您可以通過點擊上述文章中的Resolve IP address from Hostname來獲得腳本。
我們未來可能無法使用的鏈接,請包括核心組件在您的答案,只使用鏈接的「更多信息」 – rob 2016-10-07 08:39:17
我會使用解決方案vcsjones評論,但由於他的解決方案的結果,當用於具有多個IP地址的主機名將是一個IP數組,這將導致進一步的ping/tracert問題。
我使用的解決方案是:
$ping = New-Object System.Net.NetworkInformation.Ping
$ips = $($ping.Send("yourhosthere").Address).IPAddressToString
這將顯示單個IP串(在$ips
變量),從單一的ICMP迴應解決,防止IP地址的陣列用於與多個IP主機名。
爲什麼你有一個$前($ ping.Send .......? – 2017-05-09 03:53:33
@Backwards_Dave,顯然我習慣用圓括號來分組項目已經結束(...): $ ips = $ ping.Send(「yourhosthere」)。Address.IPAddressToString 感謝您的詢問。Less is more ... – 2017-05-10 09:46:44
如果您知道子網(即在本例中10.3)的一部分,那麼這將搶在給定的子網中的所有地址:
PS C:\> [System.Net.Dns]::GetHostAddresses("MyPC") | foreach { $_.IPAddressToString | findstr "10.3."}
最簡單的方法:
ping hostname
例如
ping dynlab938.meng.auth.gr
它將打印: ping命令dynlab938.meng.auth.gr [155.207.29.38]用32字節的數據
作爲PowerShell的問題,我希望答案是一個字符串/包含IP地址的對象 – rob 2016-10-07 08:40:44
的這很適合於我的目的
$ping = ping -4 $env:COMPUTERNAME
$ip = $ping.Item(2)
$ip = $ip.Substring(11,11)
這是好的簡單並獲得所有節點。
$ip = Resolve-DNSName google.com
$ip
也嘗試輸入一個IP而不是域名,並檢查出這些結果呢!
Best answe在這裏! – gvee 2016-05-26 15:05:31
底下是如何不同[System.Net.Dns] :: GetHostAddresses? – Castrohenge 2017-09-07 11:51:31
如果您只想使用此方法訪問IP地址,請使用$ ip.IPAddress。注意,如果有多個IP,這將返回一個數組。 – 2018-01-19 21:04:37
工作一個襯墊,如果你想從集合單個結果:
$ipAddy = [System.Net.Dns]::GetHostAddresses("yahoo.com")[0].IPAddressToString;
心連心
$computername = $env:computername
[System.Net.Dns]::GetHostAddresses($computername) | where {$_.AddressFamily -notlike "InterNetworkV6"} | foreach {echo $_.IPAddressToString }
儘管此代碼可能會回答問題,但爲何和/或如何通過此代碼來回答問題提供了其他上下文,這可以提高其長期價值。 – JAL 2015-12-23 15:12:59
使用Resolve-DnsName cmdlet的。
Resolve-DnsName computername | FT Name, IPAddress -HideTableHeaders | Out-File -Append c:\filename.txt
PS C:\> Resolve-DnsName stackoverflow.com
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
stackoverflow.com A 130 Answer 151.101.65.69
stackoverflow.com A 130 Answer 151.101.129.69
stackoverflow.com A 130 Answer 151.101.193.69
stackoverflow.com A 130 Answer 151.101.1.69
PS C:\> Resolve-DnsName stackoverflow.com | Format-Table Name, IPAddress -HideTableHeaders
stackoverflow.com 151.101.65.69
stackoverflow.com 151.101.1.69
stackoverflow.com 151.101.193.69
stackoverflow.com 151.101.129.69
PS C:\> Resolve-DnsName -Type A google.com
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
google.com A 16 Answer 216.58.193.78
PS C:\> Resolve-DnsName -Type AAAA google.com
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
google.com AAAA 223 Answer 2607:f8b0:400e:c04::64
雖然這段代碼可能會回答這個問題,但提供關於爲什麼和/或該代碼如何回答問題的其他內容可以提高其長期價值。 – Jack 2016-01-07 15:36:20
如果你有一大堆主機的文本文件,您可以使用此代碼
$a = get-content "C:\Users\host.txt"(file path)
foreach ($i in $a)
{
$i + "`n" + "==========================";[System.Net.Dns]::GetHostAddresses($i)
}
測試,連接命令似乎是一個有用的選擇,它可以提供Win32_PingStatus對象或布爾值。
- 1. 解析主機名的ip地址
- 2. 將主機名解析爲IP地址
- 3. 在Powershell中使用nslookup獲取IP地址的主機名
- 4. 在Powershell中使用nslookup獲取主機名的IP地址
- 5. 如何從iOS中的IP地址解析主機名Objective-C
- 6. 無法從容器內的主機名解析IP地址
- 7. 如何在Metro/WinRT中將主機名解析爲IP地址?
- 8. 將IP地址解析爲意外主機名
- 9. 如何將主機名異步解析爲IP地址?
- 10. Android將主機名解析爲IP地址翻譯
- 11. 在C中解析任意主機名/ IP地址#
- 12. 主機名不能被解析爲IP地址
- 13. .NET Socket.Connect將主機名解析爲IP地址
- 14. 閱讀主機名稱列表並解析爲IP地址
- 15. hdfs局域網IP地址主機名解析
- 16. Python解析主機名與IPv6地址
- 17. 按主機名解析mac地址
- 18. PHP解析主機+ IP到IP地址的唯一
- 19. 執行DNS查找以使用JavaScript將主機名解析爲IP地址
- 20. PowerShell New - 自簽名證書IP地址
- 21. 爲IP地址分配URL(IP地址映射到主機名)
- 22. 使用SMTP與主機的IP地址
- 23. 從IP地址獲取主機名
- 24. 顯示主機名和IP地址
- 25. 將IP地址轉換爲主機名
- 26. 從IP地址獲取主機名
- 27. 解析IP地址以獲取別名
- 28. 將ip解析爲主機名
- 29. IP如何解析主機名?
- 30. IP地址解析使用PHP回聲
沒有一個Windows機器我不能肯定,但也不Nslookup的或挖可用? – 2011-12-28 20:34:36