Python ValueError:以10为基数的int()的文本无效:';192.168.1.1';
错误ValueError:以10为基数的int()的文本无效:Python ValueError:以10为基数的int()的文本无效:';192.168.1.1';,python,Python,错误ValueError:以10为基数的int()的文本无效: def ports(): os.system("clear") target = raw_input("Select a Target IP : ") target = int(target) os.system("nmap -O -Pn %s") % target sys.exit(); 需要帮忙吗 幸亏我找到了答案: os.system("clear") target = raw_input("Select a Target
def ports():
os.system("clear")
target = raw_input("Select a Target IP : ")
target = int(target)
os.system("nmap -O -Pn %s") % target
sys.exit();
需要帮忙吗 幸亏我找到了答案:
os.system("clear")
target = raw_input("Select a Target IP : ")
os.system("nmap -O -Pn %s" % target)
sys.exit();
不要尝试将IP转换为
int
。
相反,将其作为字符串处理
真正的问题在于行
os.system(“nmap-O-Pn%s”)%target
,因为os.system()。它应该是os.system(“nmap-O-Pn%s”%target)
您必须将字符串传递给os.system
,但是有一个api可以做您想做的事情,而不需要任何系统调用,并为您提供更多选项,要扫描主机,它非常简单:
import nmap
ip = "127.0.0.1"
scanner = nmap.PortScanner()
scanner.scan("-O -Pn {}".format(ip))
您还可以轻松地执行异步扫描:
import nmap
nma = nmap.PortScannerAsync()
def callback_result(host, scan_result):
print('------------------')
print(host, scan_result)
nma.scan(hosts='192.168.1.0/30', arguments='-sP', callback=callback_result)
while nma.still_scanning():
print("Waiting >>>")
nma.wait(2) # you can do whatever you want but I choose to wait after the end of the scan
有许多例子os.system
也不会给您任何要解析的输出,如果您正在进行系统调用,您应该使用“192.168.1.1”不是整数。你期待什么?它是一个由4'.'分隔的整数组成的字符串。只要去掉int(target)
,代码片段就可以很好地工作了。不清楚你在问什么问题。为什么要调用int()
?IP地址不是整数。您希望得到什么?只需按原样将目标格式化为字符串。当我删除int(target)os.system(“nmap-O-Pn%s”)%target TypeError:不支持%的操作数类型:'int'和'str'