ここから本文です

・「ローカル エリア接続」と「イーサネット」の違い arpに登録するのに、 「a...

kit********さん

2019/5/1722:00:03

・「ローカル エリア接続」と「イーサネット」の違い

arpに登録するのに、
「arp -s 192.xxx.xxx.xxx 00_xx_xx_xx_xx_xx」

を利用してバッチを作ろうとしていましたが、
Win10あたりから、このコマンドが使えず、
「netsh interface ipv4 set neighbors "インターフェース名" "IPアドレス" "Macアドレス"」
としなければならないらしいです。
http://www.sakashita-net.jp/2015/11/arp-sarparp.html

ここで、「インターフェース名」の取得ですが、
「netsh interface ipv4 show interface」を打つと、
「ローカル エリア接続」か、「イーサネット」と表示される場合があるそうです。
ここで、質問なのですが、「ローカル エリア接続」と、「イーサネット」と表示される違いとは何なんでしょうか??

また、「netsh interface ipv4 show interface」以外に「インターフェース名」を取得する方法はございましょうか?

閲覧数:
85
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

hhw********さん

2019/5/2216:51:29

違いについては下記のサイトをご覧になってください。

http://www.gallowaynursery.net/?p=45

インターフェースの取得は下記のプログラムを入力してください。

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
#include <sys/ioctl.h>

/* 取得できるインターフェースの最大値 */
/* 10個以上インターフェースがある場合は増やしてください */
#define MAX_IFR 10

int
main()
{
struct ifreq ifr[MAX_IFR];
struct ifconf ifc;
int fd;
int nifs, i;

fd = socket(AF_INET, SOCK_DGRAM, 0);

/* データを受け取る部分の長さ */
ifc.ifc_len = sizeof(ifr);

/* kernelからデータを受け取る部分を指定 */
ifc.ifc_ifcu.ifcu_buf = (void *)ifr;

ioctl(fd, SIOCGIFCONF, &ifc);

/* kernelから帰ってきた数を計算 */
nifs = ifc.ifc_len / sizeof(struct ifreq);

/* 全てのインターフェース名を表示 */
for (i=0; i<nifs; i++) {
printf("%s\n", ifr[i].ifr_name);
}

close(fd);

return 0;
}

入力すればインターフェース名の一覧を取得できます。

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる