• ベストアンサー

ネットワークにつながっているかの確認

nightowlの回答

  • ベストアンサー
  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.2

こんにちは。 No.1さんお答えのようにそのまま書けばOKですが、 Cプログラムの中から呼ぼうというのは特別わけがあるのでしょうか。 ping はエラーコードとしてリモートホストが正常にパケットに反応すれば0、 向こうが応答パケットを返してこなければ1、 ホストがダウンしているなら2を返します。 詳細は「man ping」で。 こんなプログラムをでっち上げてみました(仮称 pingpong.c)。 引数に任意のホスト名または IP アドレスを取れます。 $ pingpong www.example.org #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUF 64 #define CHECKCOUNT 5 int main(int argc, char *argv[]) { int result; char command[BUF]; char *hostptr = "192.168.0.0"; if (argc == 2) hostptr = argv[1]; if (strlen(hostptr) >= BUF-25) { fprintf(stderr, "Hostname too long.\n"); exit(4); } /* ping コマンドは饒舌で、-q をつけても完全には黙りません */ sprintf(command, "ping -q -c %d %s >/dev/null", CHECKCOUNT, hostptr); result = system(command); /* シェルスクリプトに戻り値を判断させたいなら以下は不要で すぐに return result; してください */ switch (result) { case 1: puts("No packets received."); return result; case 2: puts("Host unreachable"); return result; } return result; }

関連するQ&A

  • 異なるネットワークに、プライベートアドレスでpingが通る?

    現在、 WAN=ルータ1(192.168.1)=ルータ2(192.168.2)=PC という接続をしています。 自分のPCのIPアドレスが「192.168.2.3」として、そのPCから、「ping 192.168.1.3」のように上位のネットワークにプライベートIPアドレスでpingを通そうとしたら、応答が帰ってきたのですが、これはなぜなのでしょうか? グローバルIPアドレスか自分のネットワーク内のプライベートネットワークIPアドレスしか、通じないと思っていたのですが…。 よろしくお願いします。

  • 異なるネットワークアドレスについて

    例えば以下のような構成を考えます。 PC-----ルーター-----インターネット PCのIPアドレス 192.168.0.100 PCのMACアドレス AAA(簡単に) ルータのIPアドレス 192.168.0.1 ルータのMACアドレス BBB(簡単に) ここでPCから100.100.100.100というIPアドレスに ping通信をしたとします(別にhttpdでもftpでもいいです。)そして応答が返ってきた場合の応答パケット内の送信先、送信元のIPとMACは以下のようになっています。 送信先IP 192.168.0.100(PCの) 送信先MAC AAA(PCの) 送信元IP 100.100.100.100(ping対象の) 送信元MAC BBB(ルーターの) 上記では送信先IPと送信元IPのネットワークアドレスは異なります。ネットワークアドレスが異なれば通信はできないはずです。具体的にはネットワークアドレスの異なるパケットを受信した場合はPCは破棄するはずです。しかし実際には上記のような場合でもpingは通ります。 これはどういうしくみ(決まり)で動作しているのでしょうか? ご教授よろしくお願いします。  

  • Windows2000のネットワーク接続

    Windows2000のPCをネットワークに接続しようとしています。 ネットワークカードを買ってきて増設、ドライバのインストール及びOSから認識していることも確認しました。 IPアドレス等の設定を行い、いざネットワークに接続と思ってLANケーブルをNICに差し込んだとたんに、ローカルエリア接続のアイコンに×印がついてまったく接続できません。 自分のIPアドレス(ループバックでなく、割り当てたIP)にpingを実行しても応答なし。 ですが、ケーブルを抜くとそれらは綺麗に解消されます。 当然ケーブルはテスターを使って断線していないことも確認しました。 同じようなトラブルを解消した方いませんか?

  • Windows TTL応答について

    Windows10 ProのPCを使用しております、つい最近pingを相手から自分あてに 実行したところTTL=64で応答しておりました。 他のマシンとIPアドレスがかぶっている可能性もあったので確認しましたが、実際に自分のPCからの応答でした。 いつからかは不明なのですが、もし要因として挙げられる項目があればお知らせ願います。

  • Win3.1でのネットワーク設定

    Win3.11のネットワーク設定(IPアドレスなど)を変更しようとしています。 Trumpet winsockというソフト上で変更を行ったのですが、うまく作動しません。 具体的には、 自分自身へのpingには応答するが、 LANでつながっている他のPCへのpingは通らない。 他のPCからのpingも通らない。 というような状況です。 ケーブルを取り替えてみてもだめでした。 他にも設定し直さなければいけないものがあるのでしょうか?

  • Windowsネットワークについて教えてください

    Windowsネットワークについて教えてください。 ネットワーク内でPCがDHCPでアドレスを自動取得(例えば192.168.0.XXX)できるようにしてあり、 すべてのPCには固定のIPアドレスを割り当てていません。 このネットワークで”MyCom”というコンピュータ名のPCがあったとして、コマンドで ping MyCom を実行した場合、pingは通りますでしょうか? 通る場合、DNSサーバが無いのにどうして通るのでしょうか?

  • Linuxからネットワークの全ホストを検索する方法を教えてください

    ネットワーク上に接続しているホスト一覧を Linux上から効率的に取得する方法を教えてください。 LinuxのバージョンはRedhat linux 9.0 です。 ネットワーク上に存在するホストを探すため、 全IPアドレスへPINGを飛ばしエコー応答<ICMP(TYPE 0)>を返した クライントを有効と判断することで実現できますが、 それでは判断に時間がかかります。 もう効率的に探す方法はないでしょうか。

  • スイッチとPCの疎通確認がとれないので、教えてください。

    スイッチCatalyst2950とノートPC(HP製)の疎通確認をしたいのです。 スイッチとノートPCを UTPケーブル(カテゴリ6)で接続 URS232でコンソール接続しTeraTermで操作しています ノートPCの設定 IP      192.168.1.2 サブネット 255.255.255.0 スイッチの設定 int vlan 1 ip address 192.168.1.10 255.255.255.0 no shut ******************************* その後 PCから ping 192.168.1.10 :  これは応答がかえってきます しかし スイッチから ping 192.168.1.2 : 応答が返ってきません。 ********************************************************* ・windowsの設定でICMPは許可してあります ・pingは特権モードからうっています ・ファイアウォールとウイルスバスターを停止してから行っています ・sh int でみたところポートはUP/UPになっています・・・ ********************************************************* 疎通が片方からしか通らない この理由がわからなくて困っています。どなたか アドバイスお願い致します。

  • ネットワーク接続不良(PINGの応答がない)

    新規購入したPCにてネットワークの不具合が発生しております。 状況としては、 (1)社内のLANに接続しておりネットワーク設定(DHCP)は問題ありません。 (2)IPアドレス・DNS、WINSのアドレスも問題なく取得できています。 (3)他のPCから不具合PCに対するpingがtimeOutとなります。(WindowsFireWallは無効にしてあります) (4)不具合PCから他のPCに対するIPアドレスでのpingは応答がありますが、PC名でのPINGはTimeOutとなります。(「NeyBIOS over TCP/IPを有効にする」も有効となっています) (5)そのPCから他のPCに対するnet view はエラーが返ってきます。 (6)OSを再インストールして再確認しましたが同様の現象が発生しています。 このような現象は何が原因で発生することが考えられるのでしょうか? (3)の点が今まで経験したことのない事例なので気になっています。 ハードウェアの初期不良の可能性もありえますでしょうか? (まだメーカへの問い合わせは行っておりません) 以上、宜しくお願い致します。

  • 疎通確認

    教えて下さい。 PCからルータを経由するサーバに、Pingを実行した場合、 ルータにPCのネットワークのルート(戻りのルート)を書かないと、Pingの応答はPCまで戻らないのでしょうか。 (RIP等の動的ルートは使用しない) よろしくお願いします。