dev*_*747 28 windows powershell-3.0
在PowerShell 3.0 Windows 7中是否有一种简单的方法可以将本地计算机的ipv4地址转换为变量?
Luc*_*cas 32
这是另一个解决方案:
$env:HostIP = (
Get-NetIPConfiguration |
Where-Object {
$_.IPv4DefaultGateway -ne $null -and
$_.NetAdapter.Status -ne "Disconnected"
}
).IPv4Address.IPAddress
Run Code Online (Sandbox Code Playgroud)
Jan*_*han 27
这个怎么样?(不是我的真实IP地址!)
PS C:\> $ipV4 = Test-Connection -ComputerName (hostname) -Count 1 | Select IPV4Address
PS C:\> $ipV4
IPV4Address
-----------
192.0.2.0
Run Code Online (Sandbox Code Playgroud)
请注意,使用localhost只会返回并且IP为127.0.0.1
PS C:\> $ipV4 = Test-Connection -ComputerName localhost -Count 1 | Select IPV4Address
PS C:\> $ipV4
IPV4Address
-----------
127.0.0.1
Run Code Online (Sandbox Code Playgroud)
必须扩展IP地址对象以获取地址字符串
PS C:\> $ipV4 = Test-Connection -ComputerName (hostname) -Count 1 | Select -ExpandProperty IPV4Address
PS C:\> $ipV4
Address : 556228818
AddressFamily : InterNetwork
ScopeId :
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IsIPv6Teredo : False
IsIPv4MappedToIPv6 : False
IPAddressToString : 192.0.2.0
PS C:\> $ipV4.IPAddressToString
192.0.2.0
Run Code Online (Sandbox Code Playgroud)
dev*_*747 11
如果我使用机器名称,这是有效的.但有点像黑客(因为我只是选择了我获得的ipv4地址的第一个值.)
$ipaddress=([System.Net.DNS]::GetHostAddresses('PasteMachineNameHere')|Where-Object {$_.AddressFamily -eq "InterNetwork"} | select-object IPAddressToString)[0].IPAddressToString
Run Code Online (Sandbox Code Playgroud)
请注意,您必须在上面的表达式中替换值PasteMachineNameHere
这也有效
$localIpAddress=((ipconfig | findstr [0-9].\.)[0]).Split()[-1]
Run Code Online (Sandbox Code Playgroud)
小智 8
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | where {$_.DefaultIPGateway -ne $null}).IPAddress | select-object -first 1
Run Code Online (Sandbox Code Playgroud)
以下是使用windows powershell和/或powershell core 的三种方法,从最快到最慢列出。您可以将其分配给您选择的变量。
$ipAddress = (Get-NetIPAddress | Where-Object {$_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00"}).IPAddress
$ipAddress = (Test-Connection -ComputerName (hostname) -Count 1 | Select -ExpandProperty IPv4Address).IPAddressToString
$ipAddress = (Get-NetIPConfiguration | Where-Object {$_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected"}).IPv4Address.IPAddress
这是我最终使用的
$ipaddress = $(ipconfig | where {$_ -match 'IPv4.+\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' } | out-null; $Matches[1])
Run Code Online (Sandbox Code Playgroud)
它被打破了
这一行为您提供了 IP 地址:
(Test-Connection -ComputerName $env:computername -count 1).ipv4address.IPAddressToString
Run Code Online (Sandbox Code Playgroud)
将其包含在变量中吗?
$IPV4=(Test-Connection -ComputerName $env:computername -count 1).ipv4address.IPAddressToString
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82350 次 |
| 最近记录: |