我在Ubuntu 14.04 LTS上工作。我需要使用getpeername
来处理我正在处理的脚本。我得到了AttributeError
,因为它不存在:dir(socket)
除getpeername
之外的所有内容。但是,'GETPEERNAME 1'列在所有pyconfig.h文件中。这适用于2.7,3.4并且当我在另一台计算机上安装了新的操作系统时(只是为了查看它是否是叠加安装的问题)。这是14.04的问题吗?它可以修复吗?我输了。
import socket
n= 1024
M= 65535
L=[]
while n<= int(M):
target = "0.0.0.0"
port = n
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
server.bind ((target, port))
print "[*] Listening on %s:%d" % (target, port)
except:
print (port,'Busy')
L.append (port)
n=n+1
print (L)
socket.getpeername(L[2])
答案 0 :(得分:1)
getpeername()
不是socket
模块的一部分,它是套接字对象的一部分。它对侦听套接字也没用,因为它们没有对等体。
你可能需要这样的东西:
clnt_sock, _ = server.accept()
print clnt_sock.getpeername()
此外,您的收听路径不正确,您忘记拨打listen
:
server.listen(5)