2016-04-11 20 views
1

私は、IPアドレスを整数に変換するためにpowershellを使いたいと思います。PowershellはIPアドレスを整数に変換します

私のpythonを使用し、それは次のようにうまく機能:

from netaddr import IPAddress 
value1Numeric = int(IPAddress('10.36.5.0')) 
print 'value1Numeric: '+str(value1Numeric) 

私は期待してい170132736の値を出力します。

私はPowerShellで同じことを行うためにthese instructionsに従うときしかし、私はこれを参照してください。私は私を与えるためにPowerShellを取得するにはどうすればよい336906.

のPowerShellのから値を取得し

$IP = [IPAddress]"10.36.5.0".Trim() 
$ip.Address 

をPythonと同じ値でしたか?

+1

回答全体を読んだことがありますか?それはそれのようには見えません。 – TheMadTechnician

答えて

3

バイトオーダーを変更する必要があります。

[IPAddress]$ip = "255.255.255.255" 
$bytes = $ip.GetAddressBytes() 
if ([BitConverter]::IsLittleEndian) { 
     [Array]::Reverse($bytes) 
} 
[BitConverter]::ToUInt32($bytes, 0) 
+0

あなたのコードは私の例では(ありがとう!)、そのIPのために働いたが、 "10.36.5.254"を試してみたところ、動作しませんでした。なぜなのかご存知ですか? – user952342

+1

HostToNetworkOrderを正しく使用する方法を見つけることができなかったので、答えのコードをArray.Reverse()を使用するように変更しました。 – t1meless

関連する問題