ユーザーのホスト名を取得しようとすると、奇妙な TypeError が発生します。
def getHostName(tfm, username):
found = False
for room in tfm.rooms.values():
for playerCode, client in room.clients.items():
if client.username == username:
found = socket.gethostbyaddr(socket.gethostname())[0]
break
return found
これは私がホスト名を取得するために使用したものであり、それがエラーになっています。
def getIPaddress(tfm, username):
found = False
for room in tfm.rooms.values():
for playerCode, client in room.clients.items():
if client.username == username:
found = client.address[0]
break
return found
これは、IPアドレスを取得するために使用したものです。
Traceback (most recent call last):
File "Wesley.py", line 544, in found_terminator
tfm.parsePacket(packet, MDT, Size)
File "Wesley.py", line 760, in parsePacket
tfm.parseDataUTF(packet[2:struct.unpack('!h', packet[:2])[0]+2])
File "Wesley.py", line 1063, in parseDataUTF
Commands(tfm, values[0], values)
File "/root/Server/Commands.py", line 2543, in ParseCommand
hostname = tfm.server.getHostName(username)
File "Wesley.py", line 5757, in getHostName
found = socket.gethostbyaddr(socket.gethostname())[0]
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'
コマンドを使用してユーザー名を指定しました。