我刚刚学习了Python的基础知识,我正在尝试做一些项目,以便增加我对编程语言的了解。在
由于我有点偏执,我创建了一个脚本,它使用PycURL每隔x秒获取我当前的IP地址,以保证VPN的安全性。这是我的代码[已编辑]:
import requests
enterIP = str(input("What is your current IP address?"))
def getIP():
while True:
try:
result = requests.get("http://ipinfo.io/ip")
print(result.text)
except keyboardInterrupt:
print("\nProccess terminated by user")
return result.text
def checkIP():
while True:
if enterIP == result.text:
pass
else:
print("IP has changed!")
getIP()
checkIP()
现在我想扩展一下这个想法,这样脚本就要求用户输入他们当前的IP地址,将这个八位字节保存为一个字符串,然后使用一个循环对PycURL函数继续运行它,以确保他们的IP没有改变?唯一的问题是我完全被难住了,我不能想出一个函数来获取PycURL的输出并将其与字符串进行比较。我怎么做到的?在
正如@holdenweb所解释的,对于这样一个简单的任务,您不需要
pycurl
,但是,下面是一个工作示例:如您所见,我将获取IP的逻辑移到了单独的函数:
get_ip
并添加了一些缺少的内容,如将缓冲区捕捉到字符串并返回它。否则它与pycurl quickstart中的第一个示例几乎相同当直接(而不是通过导入)访问脚本时,将在下面调用main函数。在
首先,它调用
get_ip
来获取初始IP,然后运行while循环,该循环检查IP是否已更改并通知您是否已更改。在编辑: 由于您更改了问题,下面是一个工作示例中的新代码:
^{pr2}$正如我在上面的评论中提到的,您不需要两个循环。一个就够了。你甚至不需要两个函数,但最好这样做。一个用于获取数据,另一个用于循环。在后者中,首先获取初始值,然后运行循环,在循环中检查值是否已更改。在
从阅读} library 来解决这个问题会更容易。Curl更多地用于文件传输,因此库希望您提供一个类似文件的对象,它将内容写入其中。这会使你的逻辑复杂化。在
pycurl
文档来看,您似乎会发现使用the ^{requests
允许您直接访问服务器响应的文本:正如@PeterWood所建议的那样,函数比类更适合这样做——或者如果脚本要连续运行,只需一个简单的循环作为程序的主体。在
相关问题 更多 >
编程相关推荐