我正在尝试让子进程通过 linux 运行 hma 代理。我是 Python 新手,所以也许我没有使用正确的方法。我需要它做的是在后台运行 hma 并让程序检查我的公共 IP 是否与程序启动之前相同,如果不是每 30 分钟重新运行一次 hma 程序。
基本上程序需要检查当前IP然后连接到hma。如果第一个 IP 匹配第二个 IP,即 hma 没有连接,则打印等待。如果 IP 不匹配,则在 30 分钟内再次运行 hma。这是我到目前为止的代码。
import os
import webbrowser
import time
import socket
import urllib2
import subprocess
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
internal = response.read()
print "Internal IP Address is ", internal
hma = ['cd', '/Desktop/hma', ';', './hma-start', '-r']
subprocess.Popen(hma, shell=True)
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
external = response.read()
while (internal == external):
time.sleep(1)
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
external = response.read()
print 'waiting'
while (internal != external):
print 'It changed'
hma = ['cd', '/Desktop/hma', ';', './hma-start', '-r']
subprocess.Popen(hma, shell=True)
response = urllib2.urlopen("http://automation.whatismyip.com/n09230945.asp")
external = response.read()
print "External IP Address is ", external
我究竟做错了什么?对不起,如果这是完全错误的。我是子流程模块的新手