2016-08-09 20 views
0

を使用して、ネットワーク上に存在する場合、私は伝えるためにしようとしています伝える私たちは、オフィスのダッシュボードに玉葉を作るしようとしていると我々はチェックしますその人の携帯電話がwifi経由で接続されているかどうかを確認する(私たちはMACアドレスを取得する)MACアドレスは、C#</p> <p>を使用して、ネットワーク上に存在する場合、MACアドレスは、C#

私はネットワーキングにあまり強くないので、どこから始めるべきかわからない。

+0

これがARPの目的です。ホストには、使用しているすべてのMACアドレスのARPキャッシュがあります。 IPを使用してホストに接続しようとしない限り、MACアドレスを取得できません。次に、ARPはレイヤ3アドレスをレイヤ2アドレスに解決します。 ARPキャッシュはエントリをタイムアウトさせますが、この時間はOSによって異なります。 –

答えて

0

Windows arp -aコマンドラインを実行して、現在のネットワークに接続されているすべてのデバイスを見つけることができます。

次に、各行のMACアドレスを解析して、オフィスにいる人を把握することができます。

+0

を見てください:http://stackoverflow.com/questions/850650/reliable-method-to-get-machines-mac-address-in-c-sharp –

+0

@ M.Hassanそれは自分のMACアドレスを取得するためのものではありません 'それ? – Steve

+2

これはARPキャッシュにあるエントリだけを表示しませんか?私がarpコマンドを完全に理解していない限り、それは完全なリストではないかもしれません。 – rmc00

0

最初のルータ/スイッチではMACアドレスが削除されているため、ルータ/スイッチのモニタリングポートにアクセスできない限り、接続されているものを判別するのに役立ちません。あなたがマルチホップネットワーク上にいるなら、それは役に立たない。

編集

OK、私は今、私はあなたが携帯電話や無線LAN接続について話して理解することが、私が言った原料の束を削除しました。

私が思いつくことができる最も簡単な方法は、ルータのDHCPリース時間を10分のように短く設定してから、ルータに「誰が接続しているか」と尋ねることです。

クライアントがまだ存在する限り、短い最小時間は有効期限が切れるたびに自動的に更新されます。

多くのルータは、現在のDHCPリースを管理ページに表示します。あなたは、あなたのアプリケーションでページを掻き集めて、現在アクティブなすべてのDHCPリースのリストを取得することができます。

dnsmasqを使用するルータを使用している場合は、/tmp/dnsmasq.leases(ルータ上)から取得することもできます。 (場所は変わるかもしれませんが、/ tmpはかなり一般的です)。

最初の解決策ではWebページの解析が必要で、2番目の解決策ではルータからプレーンテキストファイルを取得して解析する必要があります。

いずれにせよ、「誰が接続しているか」を知る最良の方法は、接続しているデバイスに質問することです。

+0

私たちはすべてイーサネットと無線LANのための1つのスイッチ上にあるので、私は剥奪されているMACアドレスについて心配していません。私の計画は、60〜90秒ごとにスキャンし、誰かが2-3回スキャンした後に「オフィス外」としてマークした場合です – Crash893

+0

また、私はwifi経由で私のネットワークに接続する携帯電話を指しています。元の投稿ではっきりしない。 – Crash893

+0

それはうまくいくはずだ。数分間電話のWiFiインターフェイスにpingできない場合は、おそらくなくなっている(または接続していない)だけです。これは、携帯電話の無線LAN接続がping可能であることを前提としています。彼らがいるかどうかはわかりません。 –

関連する問題