[Armadillo:00823] Re: リンクアップ/ダウンを検出する方法
TNN Makoto Nakamura
email@hidden
2006年 1月 23日 (月) 18:10:22 JST
いつもお世話になっています。
中村@TNNシステムズです。
もっとスマートな方法があるかもしれませんが
自分は以下のようにチェックしています。
ご参考までに・・・
※ついでに書きますが
アルマジロ起動時等のIP設定中に外部からpingとか
httpリクエストを投げるとリンクアップ出来ないことが
あるようです。
---------------------------------------------------------
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <net/if.h>
int Eth_Link_Get(char *ifname)
{
struct ifreq ifr;
int skfd=-1;
int ret = -1;
/* ソケットを開く */
skfd = socket(AF_INET, SOCK_DGRAM, 0);
if (skfd < 0) {
close(skfd);
// リンクダウン
return(-1) ;
}
/* インターフェースを取得する */
strcpy(ifr.ifr_name, ifname);
if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
close(skfd);
// リンクダウン
return(-1);
}
/* リンク状態確認 */
if (ifr.ifr_flags & IFF_UP) {
/* IPアドレス確認 */
if (ioctl(skfd, SIOCGIFADDR, &ifr) == 0) {
// リンクアップ
ret = 0;
}
}
close(skfd);
return(ret);
}
"kurosaki" <email@hidden>さん:
> SYSCOM黒崎です。
>
> Armadillo-JにLANケーブルが接続されているかどうかを判断したいのですが、リ
> ンクアップ/ダウンを検出する手だてはありますでしょうか。
> ご存じの方いらっしゃいましたら、よろしくお願いいたします。
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内