如何通过python套接字模块获取服务器详细信息?

问题描述

我开发了一个小型服务器和客户端套接字程序,它们仅在特定端口号上连接,并充当聊天机器人。下面是服务器

server.py

import socket
server_sock = socket.socket(socket.AF_INET,socket.soCK_STREAM)
port = 1234
server_sock.bind(('',port))
print('server is bound to port number: ',port)
server_sock.listen()
print('Server is listening for clients')

conn,addr = server_sock.accept()
print('hey got a client from address',addr)
data=conn.recv(1000)
print(data.decode())
conn.close()
server_sock.close()

client.py

import socket

client_sock = socket.socket()
client_sock.connect(('localhost',1234))
client_sock.sendall('Hi server,I am client'.encode())
client_sock.close()

如果我在本地主机上同时使用这两部分,则上述方法有效。但是,当我将客户端程序放在远程计算机中时,它不起作用。基本上,做完之后 python file.py,然后按Enter键,不执行任何操作,而只是坐在那里。所以,这次我用过

host = socket.gethostname()
client_sock.connect((host,1234))

现在,我收到connection refused错误。因此,我认为这是正确的做法。如果我错了,请纠正我。连接拒绝是由于某些限制,我稍后可以解决

我需要编写代码以从客户端服务器获取以下详细信息。

1) I need to kNow the IP address at which the web server is running on it including the port number
2) get the OS details.
3) also need to kNow if the IP address on which web server is running is associated with any SSL certificate.
4) Get the DNS name

我知道一种通过subprocess模块启动SSH连接并通过同一subprocess模块获取其他详细信息的方法。但是我想它不是套接字编程。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)