Python 2.7 接受ip地址作为用户的输入

Python 2.7 接受ip地址作为用户的输入,python-2.7,networking,ip,ip-address,user-input,Python 2.7,Networking,Ip,Ip Address,User Input,这是节目的第一部分。接受用户的IP地址作为输入时出现问题。 执行后,我得到以下错误 import os import sys import time import pprint import subprocess from netaddr import * print "(1).Ping specific target.\n(2).Ping sweep Subnet.\n(3).Exit" choice = raw_input("Enter your choice:- ") if choice

这是节目的第一部分。接受用户的IP地址作为输入时出现问题。 执行后,我得到以下错误

import os
import sys
import time
import pprint
import subprocess
from netaddr import *

print "(1).Ping specific target.\n(2).Ping sweep Subnet.\n(3).Exit"
choice = raw_input("Enter your choice:- ")
if choice == '1':
    host = raw_input("Enter IP address to scan: ")
    ip = IPAddress("host")
    print "accepted"
回溯(最近一次呼叫最后一次):
文件“ping.py”,第13行,在
ip=ip地址(“主机”)
文件“/usr/local/lib/python2.7/dist-packages/netaddr/ip/_-init___.py”,第308行,在_-init中__
'来自%r“%addr”的地址
NetAddress.core.AddrFormatError:未能从“主机”检测到有效的IP地址

使用python 2.7.6

可以将try/except与循环一起使用:

Traceback (most recent call last):
  File "ping.py", line 13, in <module>
    ip = IPAddress("host")
  File "/usr/local/lib/python2.7/dist-packages/netaddr/ip/__init__.py", line 308, in __init__
    'address from %r' % addr)
netaddr.core.AddrFormatError: failed to detect a valid IP address from 'host'

您在作业中使用的是字符串
“host”
,而不是变量
host

更改:

done = False
while not done:
    host = raw_input("Enter IP address to scan: ")
    try:
        ip = IPAddress("host")
        done = True
    except netaddr.core.AddrFormatError:
        print 'Invalid IP Address Format, please try again!'

ip = IPAddress("host")
ip = IPAddress(host)