2010-03-20 6 views
3

이더넷 주소에서 IP 주소를 찾기 위해 일부 Linux 코드를 찾고 있습니다. 내가 ... 내가 어떤 역 ARP 속임수를해야하지만 난 어떤 예를 찾을 수없는 가정이더넷 주소에서 원격 호스트의 IP 주소를 얻는 방법은 무엇입니까?

+0

Mac에서 ip를 원한다는 뜻입니까? – pablochan

+0

@Fred : "Linux code"라고 할 때, 프로그래밍 언어로 코드를 의미합니까? 어떤 언어? –

+0

이더넷 주소는 MAC 주소이므로 예 - MAC 주소와 IP 주소를 변환하려면 ARP/RARP를 사용해야합니다. –

답변

2

전달한 컴퓨터의 경우 arp 항목을 볼 수 있습니다. 예를 들어 /proc/net/arp의 텍스트 형식으로 사용할 수 있습니다. 알고 있지만 통신하지 않은 MAC에 대한 IP 주소를 찾는 것이 훨씬 어렵습니다. 가장 가까운 프로토콜은 프로토콜에 따라 RARP가되지만 거의 사용하지 않기 때문에 응답을 얻지 못할 수 있습니다.

로컬 서브넷을 항상 검색하여 ARP 테이블에서 전체보기를 얻을 수 있습니다. 이를 수행하는 효율적인 방법은 예를 들어 fping을 참조하십시오. 호스트는 ARP 테이블에 나타나기 위해 문제의 ping에 실제로 응답 할 필요가 없으므로 로컬 방화벽 등에서도 유용합니다.

+0

@calmh ok 그래서 다른 방법은 없습니다. ping이나 fping으로 ICMP 패킷을 보내거나 arping과 같은 것을 사용하는 것이 더 낫습니까? – Fred

+0

Arping은 사용자의 목적에 따라 불필요한 ICMP 단계를 피하기 때문에 더 효율적입니다. 하지만 전반적으로 fping은 병렬 처리가 더 빠르며 실제로 서브넷을 빠르게 검색하기 위해 만들어 졌기 때문에 더 빠를 수도 있습니다. arping처럼 arp 질문을 신속하게 보내면됩니다. 한 스레드가 가능한 한 빨리 (또는 적당한 속도 제한으로) 요청을 보내고 다른 스레드는 들어오는 응답을 수신 대기하게 만듭니다. 그렇게하면 몇 초 안에/24 서브넷의 완벽한 그림을 얻을 수 있습니다. –

관련 문제