概述
工作没有Mac,日常就是使用WSL2来开发,但和对接的前端突然说访问不到我的项目端口了,百思不得其解,网上找了很多办法,就是使用“netsh interface portproxy add v4tov4 listenport=3310 listenaddress=0.0.0.0 connectport=3310 connectaddress=wsl ip”进行ip和端口转发,可是每次这么做就麻烦,现在使用python在windows上跑powershell命令行。
1.写python代码
import subprocess
# subprocess模块用来在终端跑命令的
import re
# bash.exe -c "ifconfig eth0 | grep 'inet'"命令是获取wsl的ip地址
cv = subprocess.check_output('''bash.exe -c "ifconfig eth0 | grep 'inet'"''',
shell=True)
# 结果是二进制字节转化为字符串,可以用re表达式提取ip了
ip = re.search("d{1,3}.d{1,3}.d{1,3}.d{1,3}", str(cv,'utf-8')).group()
获取ip之后,就可以跑转发命令了
def start(ip):
# 这里存放需要转发的端口
port = [80, 443, 3310, 8000, 6000]
for x in port:
subprocess.run(
f"netsh interface portproxy add v4tov4 listenport={x} listenaddress=0.0.0.0 connectport={x} connectaddress={ip}",
shell=True)
print("绑定成功......")
bn = start(ip)
# 最后再运行命令查看是否转发成功。就ok了。
subprocess.run("netsh interface portproxy show all", shell=True)
接下来就可以使用python3 文件.py自动转发ip和端口了。
。。。
再精简一下。
2.写powershell脚本和bat文件
新建记事本文件
写以下代码
iex "python e:/Desktop/***/ipnet.py";
然后另存为.ps1文件,例如ipnet.ps1
再将该文件放到某个已经在环境变量里的某个路径下,比如,我的“D:Program Files”这个路径已经在环境变量里了,我就直接放在这个路径下了,即可使用ipnet命令手动执行。
新建记事本文件
写以下代码
@echo off
start powershell python e:/Desktop/***/ipnet.py
重命名为.bat文件
3.最后
重启终端,输入ipnet,按下回车。
效果如上,这就可以了。
当然你也可以做成开机自启动的。
本人不会powershell语言,所以是用python来写的。
4.设置开机自启动
- 按住win+R键,弹出运行窗口,输入shell:startup,就会打开存放开机启动项的文件夹。
- 将前面的.bat文件粘贴到1步骤打开的文件夹中。如果安全软件报危险,同意就可以了,自己写的,靠谱。
- 在任务管理器->启动那一栏就能看到刚添加的启动项了。
最后
以上就是激动西牛为你收集整理的使用python实现windows、WSL2 IP转发的全部内容,希望文章能够帮你解决使用python实现windows、WSL2 IP转发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复