获取终端IP、端口信息的函数,用Python
时间: 2023-04-02 18:03:39 浏览: 155
可以使用Python的socket库中的getpeername()函数来获取终端的IP和端口信息。该函数需要传入一个socket对象作为参数,返回一个元组,其中包含了终端的IP地址和端口号。示例代码如下:
```python
import socket
# 创建一个socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到远程服务器
s.connect(('www.baidu.com', 80))
# 获取终端的IP和端口信息
ip, port = s.getpeername()
print('终端IP地址:', ip)
print('终端端口号:', port)
# 关闭socket连接
s.close()
```
相关问题
获取终端IP、端口,使用Python并以调用函数的形式输出
可以使用Python中的socket模块来获取终端IP和端口。具体实现可以参考以下代码:
```python
import socket
def get_client_info():
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 连接百度服务器
s.connect(('www.baidu.com', 80))
# 获取本地IP和端口
ip, port = s.getsockname()
# 关闭socket连接
s.close()
# 返回IP和端口
return ip, port
# 调用函数获取客户端信息
ip, port = get_client_info()
print('客户端IP地址:', ip)
print('客户端端口号:', port)
```
这段代码中,我们使用socket模块创建了一个UDP socket对象,并连接到百度服务器的80端口。然后通过调用getsockname()方法获取本地IP和端口信息,并最终返回这两个值。最后,我们调用这个函数并输出获取到的IP和端口信息。
那怎么用Python实现呢?
使用 Python 实现一个基于 TCP 的双人聊天程序的步骤如下:
1. 导入 socket 模块:在 Python 中,可以使用 socket 模块实现网络通信,所以需要先导入 socket 模块。
2. 创建 socket 对象:使用 socket 模块中的 socket 函数创建一个 socket 对象,指定地址族为 AF_INET(IPv4),传输协议为 SOCK_STREAM(TCP)。
3. 绑定地址和端口:使用 bind 函数绑定一个 IP 地址和端口号,这个地址和端口号就是服务器的地址和端口号。
4. 监听连接:使用 listen 函数监听连接请求,参数指定等待连接的最大数量。
5. 接受连接:使用 accept 函数接受客户端的连接请求,返回一个新的 socket 对象和客户端的地址信息。
6. 发送和接收数据:使用 send 和 recv 函数发送和接收数据。
7. 关闭连接:使用 close 函数关闭连接。
以下是一个简单的 Python 代码示例:
```python
import socket
# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
host = '127.0.0.1'
port = 8888
s.bind((host, port))
# 监听连接
s.listen(1)
# 接受连接
conn, addr = s.accept()
print('连接已建立:', addr)
# 发送和接收数据
while True:
data = conn.recv(1024).decode()
if not data:
break
print('收到消息:', data)
message = input('请输入回复:')
conn.send(message.encode())
# 关闭连接
conn.close()
s.close()
```
这段代码实现了一个简单的 TCP 服务器,可以接受客户端的连接,并且能够收发数据。你可以在另一个终端中运行客户端程序,向这个服务器发送消息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)