MAC Address로 IP Address 알기

익명 사용자의 이미지

MAC Address로 IP Address를 알고자 합니다...
고수님들의 조언과 참고 소스및 구현 소스들의 많은 조언 부탁드립니다..
그럼 좋은 하루 되시길 바랍니다...

익명 사용자의 이미지

안녕하세요...

제 생각에는 단순히 MAC 가지고 IP를 알수는 없을 것 같습니다. MAC를 어
디서 얻어오시는 지 모르겠지만 얻어올 때 IP값도 같이 얻어오는 것이 해
결책이라면 해결책이라고 생각됩니다만... 다른 분들은 어떻게 생각하시
는 지... 그럼 수고하세염...

익명 사용자의 이미지

IP주소는 주소만 알면 라우터들이 라우터들이 라우팅 정보에 따라서 라우
팅해줘서 찾을 수 있지만...

맥 어드레스는 라우팅이 되지 않기 때문에 같은 네트웍에 있는 경우에만
찾을수 있습니다.

익명 사용자의 이미지

MAC 정보는 프로그램을 구현하는 사람이 알고있다고 생각을 하구요..
단..서버와 같은 LAN상에 물려있는 컴퓨터들이 어떤 IP를 사용하는진 모
릅니다...
모든 컴퓨터들이 서버와 같은 LAN상에 물려있습니다...
각 맥의 IP address를 알기위해선...

첫째...ARP CACHE에서 알수 있는 방법이 있습니다..
그러나 이 방법은 반드시 IP어드레스를 알아야만 하는 걸로 알고
있습니다..기존의 ARP CACHE를 이용해서 MAC을 알아내는 프로그램은 해
당 IP를 기반으로 MAC을 알아내는 방식으로 짜여져 있습니다...
제가 원하는 것은 MAC을 입력해서 IP를 알고 싶은 거지요...

둘째...RARP를 직접 구현하는 방법이 있습니다..
이경우는 서버와 같은 LAN상에 물려있는 컴터들이 서버에서 보내는 RARP
메시지를 받아서 응답을 해주어야한다는 것입니다.
월래 RARP라는 프로토클은 X터미널이나 디스크가 없는 워크스테이션과 같
은 시스템에서 ip 어드레스를 얻기 위해서 사용하죠..
이말을 바꾸면...서버와 같은 LAN상에 클라이언트가 RARP에 응답할 수 있
는 조건을 갖추어야한다고 생각합니다...단지 저의 생각입니다..

많은 고수님들의
조언을 부탁드립니다...

익명 사용자의 이미지

MAC 정보는 프로그램을 구현하는 사람이 알고있다고 생각을 하구요..
단..서버와 같은 LAN상에 물려있는 컴퓨터들이 어떤 IP를 사용하는진 모
릅니다...

--> 이와 같다면

broadcast 주소로 ping을 보내서 오는 리플라이만 취득한다면 될거 같은데
요..

익명 사용자의 이미지

제가 알기론...ping은 destination ip address나 hostname이 있어야만 하
는줄 알고 있습니다...ping자체가 broadcast로 나가고 그중에서 특정 컴
터에 응답을 기다리니까요..
제가 모르는 먼가가 있나요????

익명 사용자의 이미지


외부네트웩은 MAC address만으로 IP를 알수가 없습니다.
내부 네트웩은 ARP패킷을 날려서 알수있습니다.
가장 간단한 방법은 위에 분이 말씀 하셨듯이
ping을 날려서 알아내는 방법입니다.
ping을 날리기에 앞서 ARP패킷이 먼저 날라 가기땜에
응답하는 로컬네트웩의 호스트들의 MAC address와 IP는 매칭되어
스택에 쌓이게 됩니다.

그곳의 위치는 /proc/net/arp입니다.
ping -b 192.168.1.0 이런식으로 브로드캐스트로 핑을 날리면
응답하는 로컬 네트웩의 컴터들의 MAC와 IP를 ARP 테이블에서 읽어
올수있습니다.

익명 사용자의 이미지

ping xx.xx.xx.255 -b

하면 브로드캐스트로 핑를 보냅니다.

리플라이를 보면 연결된 모든 컴터에서 ping reply를 보내는걸 볼 수 있지

# xx.xx.xx.255는 설정에 따라 다를 수 있겠지요 )

익명 사용자의 이미지

저의 견해를 몇자 적겠습니다.

ether network의 data link계층은 mac을 기반으로 동작합니다.
즉 우리가 랜상에 보내지는 모든 자료들은 mac을 기반으로 옮겨지고 있는
것이지요. data link의 바로 아래는 실재로 전기적인 신호를 보내는
피지컬 링크니까요.

그래서 맥을 모르면 메세지를 보내기가 힘들죠 (참고 보낼수 있는 방법은
단한가지만 존재함) 즉 브로드케스트 메세지를 보낼 수 있지요.
그런데 이 브로드케스트 메세지는 근본적으로 동일 netwok상에서만
동작하게 설계된 걸로 알고 있습니다. 때문에 맥으로 ip를 알고자 한다면
각각의 라우터들이 이 브로드케스트 메세지를 forwding시키면 가능할 수
도 있지요. 예를 들면 dhcp 릴레이와 같은 기능들을 수행 해야 한다는
것입니다. 이렇게 모든 라우트들이 이 기능을 지원하면 ip로 맥을 얻는것
과 동일한 방법으로 internet에서 mac으로 ip를 얻을 수 있겠지요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.