質問

IPアドレスを変更するプログラムを作成しようとしているのですが、そういう関数は見つからなかったのですがどのような方法がありますでしょうか?
(レジストリの変更?)

SDK、WinXP

通報する

回答 (5件)

ANo.2のバッチファイル例です。

--------------------
netsh interface ip set dns name="ローカル エリア接続" source=static addr=123.123.123.123 register=PRIMARY
netsh interface ip set address name="ローカル エリア接続" gateway=192.168.0.1 gwmetric=1
netsh interface ip set address name="ローカル エリア接続" source=static addr=192.168.0.100 255.255.255.0
--------------------
1行目がDNSサーバ、2行がデフォルトゲートウェイ、3行目がIPアドレスとサブネットマスクです。変更不要な行は消しても大丈夫です。

とりあえずWinNT/2000/XPなら
iphlpapi.hの
AddIPAddress
DeleteIPAddress
で変更できるようですね。

http://msdn.microsoft.com/library/default.asp?ur …

IPパケットのソースアドレスを変更(というか自前で作って送信)するなら特殊なソケットを使うとかあとは
デバイスレベルのアクセスとかがあるんじゃないすかね。

IPアドレスを自由に変更できても正しく使う目的があんま見えないけど。

プログラム的に、直接IPアドレスを変更する方法はわからないんですけど、
コマンドから
Netsh set address コマンド
で変更することができるので、
そういうバッチを作って置いて
プログラムから呼び出すというのはどうでしょう?
(もちろん、#1で言われているような注意が必要なので、こうした変更ができるということは、ネットワーク上の制約がある上でのことですけど)

ご質問の意味がよく分かりませんが?
IPアドレスはハードウエア的情報ですから、ソフトウエアで変更はできないのですけど。
住所の番地とか電話線の電話番号のように、受け取った(割り当てられた)IPアドレスを知る事は可能ですけど、勝手にウソの番地を名乗ることはできません。
IPアドレスを相談して決めるシーケンスはありますが、関数ではなくてプログラムになります。
ご使用のネットワークにより、IPアドレス割り当てのDHCPサーバと相談して打ち合わせるか、ネットワークに接続されている全ての機器と打ち合わせてIPアドレスを変更するかの、どちらかです。
ただ、どちらにしてもWindowsのOSでは無理です。

このQ&Aは役に立ちましたか?3 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集