2017-08-09 30 views
0

データフレームにIPv4とIPv6のCIDR IPアドレス範囲(必要に応じて分割可能)を持つデータフレームがあります。私はこれらの範囲を取って範囲内の各アドレスを持つデータフレームを作成したいので、別のデータフレームと結合してフィルタリングを行うことができます。 IPアドレスのパッケージを使用してipaddressを使用したCIDR IPアドレス範囲の変換とデータフレームへの出力

、リストを展開する機能は次のとおりです。

a = ip.ip_network('103.21.244.0/22') 
    for x in a.hosts(): 
    print(x) 

これはちょうどこのIP範囲のリストを生成します。誰もがCIDRシリーズのシリーズを入れる方法を知っているので、上記のn回を実行する必要はありませんか?上記のIPアドレスの代わりにデータフレームへの参照を置くと、IPv4またはIPv6ネットワークではないことを示すValueErrorが返されます。

2番目の質問は、Pythonの初心者で、これらの拡張範囲をリストまたはデータフレームにするにはどうすればよいですか?私はこの試みた:

a = ip.ip_network('103.21.244.0/22') 
ip_list = [] #x for x in a.hosts() 
for x in a.hosts(): 
    ip_list.append(x) 
ip_list 

をとなってしまった。私はその出力を取り出すと、IPアドレスをregexingより良い方法があると確信している

[IPv4Address('103.21.244.1'), 
IPv4Address('103.21.244.2'), 
IPv4Address('103.21.244.3'), 
IPv4Address('103.21.244.4'), 
IPv4Address('103.21.244.5'), 
...] 

答えて

0
a = ip.ip_network('103.21.244.0/22') 
ip_list = [] #x for x in a.hosts() 
for x in a.hosts(): 
    ip_list.append(x.compressed) # 
ip_list 
関連する問題