完全なる個人的備忘録
便利な 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環境だといろいろ起こるらしいけど、いまんところうちの環境では必要無いので無視(ぉ