Python存储变量中的IP地址

时间:2014-02-19 20:46:29

标签: python input ip

我不熟悉Python编程,无法在变量(ip)中存储IP地址

ip = input("Enter IP address: ")

# 192.168.0.1 (Example)

print ("you entered: "+ip)

我收到错误消息但不知道该怎么做。

4 个答案:

答案 0 :(得分:4)

我认为您使用的是Python 2.x.如果是这样,那么input正在将其输入评估为真正的Python代码。

换句话说,当您输入192.168.0.1时,会引发SyntaxError,因为输入包含非法语法:

>>> input()
192.168.0.1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    192.168.0.1
            ^
SyntaxError: invalid syntax
>>>

要解决此问题,您需要改为使用raw_input

ip = raw_input("Enter IP address: ")

input不同,raw_input始终返回一个字符串对象:

>>> raw_input()
192.168.0.1
'192.168.0.1'
>>>

答案 1 :(得分:1)

如果您不想担心Python 2.xPython 3.x,请使用sys.stdin从输入读取,sys.stdout打印到该部分的输出。

import sys

sys.stdout.write("Enter IP address: ")
sys.stdout.flush()
ip = sys.stdin.readline()
print("you entered: " + ip)

输出:

Enter IP address: 192.168.1.1
you entered: 192.168.1.1

答案 2 :(得分:1)

ip = raw_input("Enter Target IP =>")
if ip >0:
    print("=>" + ip )

您必须添加 raw_input 才能添加完整的自定义 IP 地址。 如果仍然显示错误,您可能需要将 ip 转换为字符串。

答案 3 :(得分:0)

我在这里没有看到此解决方案,因此请发布。希望这对其他人有帮助。

该解决方案 Python 2.X和3.X 上均可以运行。当我需要我的脚本在两个Python版本之间兼容时遇到了这个问题。

raw_input()在2.x上可用,在3.x上引发异常

input()无法读取2.x(例外)上的ip地址格式的输入,而3.x可以使用

解决方案

try:
    ip_address = raw_input('Enter IP Address: ')  
except:
    ip_address = input('Enter IP Address: ')
不管此解决方案中的Python版本如何,

ip_address都是输入的IP地址的str

PS:您可以使用以下命令检查输入的地址是否为有效的IP地址:

import re
if not re.match(r'[0-9]+(?:\.[0-9]+){3}', ip_address):
    print('Invalid IP Address')