-4

ホスティング マシンで 30 分ごとに IP を変更する必要があるアプリケーションを構築していますが、サード パーティのアプリケーションを使用せずにプログラムで変更できますか?

Python が望ましいですが、Java も大歓迎です。

4

1 に答える 1

4

外部 (インターネット) IP アドレスを変更したい場合、およびマシンが DSL 経由でインターネットに接続されていて、ISP が動的 IP を割り当てている場合は、ルーターを再起動できます (実際には DSL モデムですが、ルーターに組み込まれています)。古いモデルを持っていない場合) 新しい IP を取得します。

プログラムによるルーターの再起動は、ルーターがプロトコルに従い、パケットを正しく解釈し、ユーザーとサーバー間の SNMP メッセージをブロックするファイアウォールやその他のフィルターがない場合、ルーター自体を再起動するように指示する小さな SNMP パケットを送信することで、理論的には実現できます。ルーター。

一般的なケースでは、設定する SNMP OID は1.3.6.1.2.1.69.1.1.3になります。たとえば、python 用のpySNMPなど、SNMP ライブラリを持つ任意の言語でこれを行うことができます。ルーターのモデルによっては、別の 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))
)
于 2012-07-18T12:01:49.623 に答える