0

csv ファイルにラベル付きの説明を含む一連のサブネットがあります。これらの説明を、別の csv ファイルでこれらのサブネットが属する Data Probe 範囲に割り当てる必要があります。

34.0.0.0ipaddressと netmask255.255.0.0を持つサブネットが与えられた
場合、サブネットが範囲内にあるかどうかを確認したい34.163.83.230-34.163.83.230

サブネットの IP とネット マスクから範囲を作成し、それを Data Probe 範囲と比較することを検討しました。これが正しい答えをもたらすかどうかを知ることができませんでした。

私は最新バージョンの Python を使用できません (これは Python 2.7 を実行するアプリケーションで動作する必要があります)。そのため、このipaddressモジュールは私にとってオプションではありません。

4

1 に答える 1

1

このsocketモジュールはinet_aton、アドレスをビット文字列に変換する を提供します。次に、 を使用してそれらを整数に変換し、 を使用してstruct.unpackマスクし&、整数比較を使用できます。

from socket import inet_aton
from struct import unpack

def atol(a):
    return unpack(">L", inet_aton(a))[0]

addr = atol("30.44.230.0")
mask = atol("255.255.0.0")
lo = atol("32.44.230.0")
hi = atol("32.44.230.255")
prefix = addr & mask

print lo <= prefix <= hi 
于 2014-03-12T22:08:14.700 に答える