네트워크에 mac 주소가 있는지 확인하는 것이 여전히 작동하지 않습니다(ping -b 및 arp).

네트워크에 mac 주소가 있는지 확인하는 것이 여전히 작동하지 않습니다(ping -b 및 arp).

이건 일종의 후속조치야이것내 게시물.

내 휴대전화의 Mac 주소가 있습니다(삼성 갤럭시 S9, 중요하지는 않지만). 네트워크에 있는지 확인하고 싶습니다. 고정아이피가 아니기 때문에 맥어드레스로 확인해야 합니다.

내 휴대폰의 mac 주소를 로 참조하겠습니다 [1].

  • 내 휴대폰에서는 네트워크의 임의 MAC 주소가 꺼져 있습니다(이전 게시물에서는 그렇지 않았습니다). 예전에는 네트워크에 연결될 때마다 임의의 Mac 주소를 생성했지만 지금은 그렇지 않습니다.
  • Mac 주소가 네트워크에 있는지 확인하기 위해 수행하는 작업은 다음과 같습니다.
    ping -b 192.168.2.255 -c 20
    arp | grep -i "[1]"
    

이것은 이벤트의 "로그"입니다.

#phone connected to network
ping -b 192.168.2.255 -c 20 &> /dev/null
arp | grep -i "[1]"
-> successful

#phone NOT connected to network (turned of wifi on phone)
ping -b 192.168.2.255 -c 20 &> /dev/null
arp | grep -i "[1]"
-> successful

두 번째로는 성공하면 안 됩니다. 전화기가 네트워크에 연결되어 있지 않지만 여전히 arp 출력에 표시됩니다.

내 전화기에는 고정 IP 주소가 없지만 네트워크에 연결하면 거의 항상 동일한 IP 주소를 얻습니다. 괜찮아. 출력은 ping -b항상 정확했습니다. 내 전화기가 네트워크에 연결되면 거의 항상 명령 목록에 나타나는 IP 주소가 표시됩니다 ping. 내 전화가 연결되어 있지 않으면 출력에 "표준" IP 주소가 표시되지 않습니다. 따라서 핑은 작동하며 "최신" 상태입니다.

그래서 나는 arp가 ping처럼 "최신"이 아니라고 가정합니다(그러나 이것은 단지 저의 추측일 뿐입니다). 나는 ping이 새로운 테이블을 "만들었지만" arp가 테이블을 업데이트하지 않는다고 생각합니다. 하지만 그것은 이전 게시물의 댓글을 바탕으로 생각한 것입니다.이미 브로드캐스트 핑(ping -b 192.168.2.255)을 수행하고 있습니다. 그러면 IP 주소가 192.168.2인 모든 온라인 장치에 대한 arp 테이블이 다시 채워져야 합니다..*"

돕다!

답변1

당신이 사용하는 경우ARP휴대폰이 네트워크에 연결되어 있는지 여부를 확인하려면 휴대폰을 제거해야 합니다.ARP컴퓨터의 항목ARP테이블. 그렇지 않으면 이전 항목이 그대로 남아 있으므로 변경 사항을 확인할 수 없습니다.

특정 항목을 제거할 수 있습니다.ARP명령 으로 항목을 입력 arp -d <IP_ADDR>하고 로 모든 항목을 제거합니다 sudo ip neigh flush all.

하지만 내 생각에는 당신이 사용해야 할 것 같아요nmap스캔을 위해 청소할 필요도 없습니다.ARP더 이상 테이블. 이 스크립트를 사용할 수 있습니다.

#!/bin/bash

mac="$1"
# Scanning network, and obtaining IP address of specfied MAC address, if exists.
PHONEIP=$(sudo  nmap -sP -n 192.168.2.0/24 | grep -B2 "$mac" | grep -Eoi "192\.168\.2\.[0-9]+")
if [[ $PHONEIP == "" ]];then
    echo "$MAC not found."
else
    echo "$MAC found at $PHONEIP"
fi

하지만 첫 번째 인수로 휴대폰의 MAC 주소를 제공해야 합니다. 그렇지 않으면 행 mac="$1"mac="<your-phone-mac>".

참고: 이 스크립트를 사용하려면 슈퍼 사용자 권한이 필요합니다.

관련 정보