python 之返回本机*IP

server 端

#!/usr/local/anaconda3/bin/python

import socket
import threading

# ====================================================
# Author: chang - EMail:changbo@hmg100.com
# Last modified: 2017-06-20
# Filename: sendoutip.py
# Description: send u out ip ,base socket
# blog:http://www.cnblogs.com/changbo
# ====================================================

port = 8899
host = 'x.x.x.xxx'


def sendOut():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    s.listen(5)

    while True:
        connection, address = s.accept()
        ip, _ = address
        ip = (str(ip)).encode('utf-8')
        while True:
            data = connection.recv(1024)
            if not data:
                break
            connection.send(ip)
            # s.close()
        connection.close()
    s.close()

if __name__ == '__main__':
    t = threading.Thread(target=sendOut)
    t.start()

client 端

#!/usr/local/anaconda3/bin/python

import socket
import struct

# ====================================================
# Author: chang - EMail:changbo@hmg100.com
# Last modified: 2017-06-20
# Filename: sendoutip.py
# Description: send u out ip ,base socket
# blog:http://www.cnblogs.com/changbo
# ====================================================

port = 8899
host = 'x.x.x.x'


def getOut():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host, port))
    data = 'hi'
    s.send(str(data).encode('utf-8'))
    results = s.recv(1024)

    print(str(results, 'utf-8'))
    s.close()

if __name__ == '__main__':
    getOut()

END!

原文地址:https://www.cnblogs.com/changbo/p/7127783.html