【個人的備忘録】.NET で PPPoE 確立、グローバルIPを取得

完全なる個人的備忘録

便利な rasdial.exe というコマンドが用意されていて 引数にアダプタとIDとパスワード与えてあげたら
そのまま接続・切断が簡単に制御できることを知り、2,3日の労力がすべて水の泡だったので萎える。

ついでに、VB.NET 上で PPPoEを確立させてから、振られたグローバルIPを取得してみる。

基本的には

System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList( n ).ToString()

でIP取得出来るらしい。

AddressList( 0 )にはローカルIPが入ってたり、入ってなかったりするので固定にはできない。

最後に確立させた接続は後に追加される形で入るはずだから、

maxIP = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList.Length

一旦こいつでいくつか入っているだろう配列の長さを maxIP に取得。

添え字をmaxIP-1で指定して、ToString で文字列として取得できるようだ。

IPAddr = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(maxIP - 1).ToString()

例外は全く考慮してない。
試しに、PPPoEが確立されていない場合に同じ方法で取得すると、
ローカルアドレスが取得されてた。

さらにIPv6環境だといろいろ起こるらしいけど、いまんところうちの環境では必要無いので無視(ぉ

コメントを残す

メールアドレスが公開されることはありません。