[Armadillo:00824] Re: リンクアップ/ダウンを検出する方法

kurosaki email@hidden
2006年 1月 23日 (月) 18:28:43 JST


参考にさせていただきます。
早々の返信ありがとうございました。


-----Original Message-----
From: email@hidden
[mailto:email@hidden]On Behalf Of TNN
Makoto Nakamura
Sent: Monday, January 23, 2006 6:10 PM
To: Armadillo series general discussion list
Subject: [Armadillo:00823] Re: リンクアップ/ダウンを検出する方法


いつもお世話になっています。
中村@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 mailing list
email@hidden
http://lists.atmark-techno.com/mailman/listinfo/armadillo




armadillo メーリングリストの案内