PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
14291 | 01/01/16 13:42:20 | RE(5):WinSockでローカルIPアドレスを取得する方法 By Taka |
14288 | 01/01/16 12:46:50 | RE(4):WinSockでローカルIPアドレスを取得する方法 By ryochan |
14285 | 01/01/16 11:41:21 | RE(3):WinSockでローカルIPアドレスを取得する方法 By Taka |
14284 | 01/01/16 09:26:23 | RE(2):WinSockでローカルIPアドレスを取得する方法 By ryochan |
14277 | 01/01/14 09:15:54 | RE(1):WinSockでローカルIPアドレスを取得する方法 By Taka |
14263 | 01/01/11 01:28:34 | PB7.0: ローカルIPアドレスをとりたい。 By の?やん |
カテゴリ:スクリプトの記述
日付:2001年01月16日 12:46 発信者:ryochan
題名:RE(4):WinSockでローカルIPアドレスを取得する方法
Takaさん、こんにちは。
>ほとんどの場合IPアドレスは1個だけだと思うので、単純にダブルポインタ的に
>処理すればいいかと思ったのですが、やはりきちんとやったほうが良いのでしょうか...
普通はTakaさんのおっしゃる通り、システム用PCでしたら1個でOKだと思います。
実は昔、WinsockもIPアドレスを1個しか取得できませんでした。
それでcのマクロのh_addrはh_addr_list[0]としています(互換の為)。
ただ、最近のPCってIEEE1394(i-Link)アダプターがついていて、
もしかしたら、そのアダプターのIP設定が最初に
取得されてしまうかもしれないと思いまして(いらん心配かもしれませんが)。
(私の使用しているのは、Etherが先でした)
でも、IPが複数設定されている場合、これがどのNICを
指しているのかは、また別の処理が必要だと思います。
でも、まだ使用したことがありません。
参考までに、この辺りに載っていると思います。
(新しいOSでないと動かないのもありますが)
http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/rras/tcpip_2g6r.htm
もしくは
IPアドレス取得もそうなのですが、
ipcofig /all > テキスト
でテキストファイルを解析した方が簡単かも^^;
>>//IPアドレス配列部のサイズを取得
>>ll_len = len(string(lb_addr))-len(nam)
>
>これなんですが、私の環境では -len(nam) ではダメなようです。
>gethostnameで取得した文字列ではなく、HOSTENT構造体.h_nameが指している文字列の長さを
>使ってやると、うまくいきました。(ネットワーク環境の設定によって違うのかな?)
>「うまくいきました」と言っても、マルチアドレスの設定ではないのでテストできない...
あれ、そうだったんですか。(汗)
たしかgethostnameはホスト名+ドメイン名で取得していたと
思うのでOKかと思いました。
(実は確認の際、直接指定していました。^^;)
多分、Takaさんの方法がより安全だと思います。
書き忘れましたが、string関数にaddressのフォーマットが
あるとは驚きました。
Takaさんはstring関数の魔術師ですね。^^
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS HP-UX
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.