我正在构建需要托管计算机每30分钟更改一次IP的应用程序,我可以在没有第三方应用程序的情况下以编程方式进行吗?
Python更受欢迎,Java也受欢迎。
答案 0 :(得分:4)
如果您想更改外部(Internet)IP地址,并且您的计算机通过dsl连接到互联网,并且您的ISP为您分配动态IP,您可以重新启动路由器(实际上是您的dsl调制解调器,但它已构建进入路由器,如果你没有一个古老的模型)来获得一个新的IP。
理论上可以通过编程方式重新启动路由器,向它发送一个小的SNMP数据包,告诉它自己重启 - 假设路由器遵循协议并正确解释数据包,并且没有防火墙或其他过滤器阻止之间的SNMP消息你和路由器。
在通常情况下,要设置的SNMP OID为1.3.6.1.2.1.69.1.1.3 - 您可以使用任何具有SNMP库的语言执行此操作,例如,pySNMP用于python。根据您的路由器型号,您可能需要不同的OID,或者根本无法通过SNMP重置。
假设你的路由器ip是192.168.0.1并且它接受默认的重置OID,这样的东西应该适用于pySNMP:
from pysnmp.entity.rfc3413.oneliner import cmdgen
from pysnmp.proto import rfc1902
cmdgen.CommandGenerator().setCmd(
cmdgen.CommunityData('my-agent', 'public', 1),
cmdgen.UdpTransportTarget(('192.168.0.1', 161)),
((1,3,6,1,2,1,69,1,1,3,0), rfc1902.Integer(1))
)