use*_*168 5 networking powershell ip-address
我只想通过 Powershell 获取外部 IP 只是 IP 地址,没有标头或任何东西。
我尝试了很多事情,例如
(Invoke-WebRequest ifconfig.me/ip).Content
Run Code Online (Sandbox Code Playgroud)
但它有这个额外的第二行,这对我没有好处。
我也试过了。
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE) | %{$_.ipaddress[0]}
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用,因为我在路由器后面。
Function IPV()
{
$IPCHK = ((Invoke-WebRequest ifconfig.me/ip).Content.Trim())
$IPCHK | Out-FIle 'CHKIP.txt'
}
$CurrentIP = ((Invoke-WebRequest ifconfig.me/ip).Content.Trim())
$PreviousIP = Get-Content 'CHKIP.txt'
IF($PreviousIP -eq ((Invoke-WebRequest ifconfig.me/ip).Content.Trim()))
{
$PreviousIP
}
ELSE {
##SEND EMAIL SCRIPT
IPV #RUN CHECK IP COMMAND AGAIN.
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*l B 12
你已经有了答案。你只是想摆脱额外的行——没有什么强迫你使用
(Invoke-WebRequest ifconfig.me/ip).Content
Run Code Online (Sandbox Code Playgroud)
照原样。相反,你可以使用这个:
(Invoke-WebRequest ifconfig.me/ip).Content.Trim()
Run Code Online (Sandbox Code Playgroud)
该String.Trim方法“中删除从当前字符串对象中的所有前导和尾随空白字符”。
一种方法是使用 OpenDNS。
Resolve-DnsName在 Windows 8.1/Server 2012 或更高版本的 Powershell 4 中使用CmdLet
$(Resolve-DnsName -Name myip.opendns.com -Server 208.67.222.220).IPAddress
Run Code Online (Sandbox Code Playgroud)
或者在早期的 Windows 版本中仅使用简单的 nslookup
$my_ip = ((& "nslookup" "myip.opendns.com" "208.67.222.220") |select -last 2)[0].Trim("Address:").Trim()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16446 次 |
| 最近记录: |