Python - 'IPv4Address' 未定义

0 投票
1 回答
6210 浏览
提问于 2025-04-18 12:47

这里是一段Python脚本的代码

import ipaddr, ipaddress

if ((IPv4Address(lower_ip) <= sender-ip) and (IPv4Address(upper_ip) >= sender-ip)):
        print "in range"

我遇到了一个错误

Traceback (most recent call last):
  File "namelookup3.py", line 55, in <module>
    if ((IPv4Address(lower_ip) <= sender-ip) and (IPv4Address(upper_ip) >= sende
r-ip)):
NameError: name 'IPv4Address' is not defined

我导入了ipaddr和ipaddress这两个库,并且%PATH%设置为D:\Python27\Lib\site-packages,这里有ipaddr和ipaddress的编译好的Python文件

求助!

1 个回答

2

当你使用 import 导入一个模块时,你需要在模块里的所有对象前面加上它们的命名空间,比如:

import ipaddr, ipaddress

if ((ipaddress.IPv4Address(lower_ip) <= sender_ip) and (ipaddress.IPv4Address(upper_ip) >= sender-ip)):
        print "in range"

另外,你也可以直接在当前的命名空间中导入 IPv4Address 类,方法是:

from ipaddress import IPv4Address

if ((IPv4Address(lower_ip) <= sender_ip) and (IPv4Address(upper_ip) >= sender_ip)):
        print "in range"

此外,你可能还想把 sender-ip 替换成 sender_ip

撰写回答