Python套接字 - 采用ip的问题,将其作为字符串

时间:2018-02-24 21:44:12

标签: python sockets networking udp ip

试图解决这个简单的脚本,没有运气。我得到的错误如下:

python renato_script.py

输入HOSTNAME ip:10.0.0.2

输入TCP / UDP端口:443

追踪(最近一次呼叫最后一次):

文件" renato_script.py",第8行,

如果是s.connect_ex((ip,port)):

TypeError:需要一个整数(得到str类型)

import socket


ip = input( "Enter HOSTNAME ip: ")
port = input ("Enter TCP/UDP port: ")

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if s.connect_ex((ip, port)):
        print ("Port", port, "is closed")
else:
        print ("Port", port, "is open")

1 个答案:

答案 0 :(得分:0)

根据https://docs.python.org/3/library/socket.html,AF_INET地址族需要一个包含字符串IP地址和整数端口的元组。您的代码传递一个包含字符串IP地址和字符串端口的元组。修复非常简单,只需将端口转换为int,如下所示:

port = int(raw_input("Enter TCP/UDP port: "))

编辑:使用python 2时,你必须使用raw_input()而不是input()