Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

мак адрес по ip в сети   Найти похожие ветки 

 
Aplay   (2004-04-24 08:04) [0]

Подскажите как узнать мак адрес сетевой карты в делфе зная только IP по сети


 
Verg ©   (2004-04-24 08:29) [1]

function SendARP(DestIP:DWORD;SrcIP:DWORD; var pMacAddr; var PhyAddrLen:DWORD):DWORD;stdcall;external "IPHLPAPI.DLL";


 
Rouse_ ©   (2004-04-24 10:28) [2]

Только есть один минус:
SendARP - применима только для NT
для Win 9x-Me придется воспользоваться GetIpNetTable
Пример возьми здесь:
http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1078646471&n=1


 
uny   (2004-04-24 10:36) [3]

а есть ли mac адрес у сотового? если skylink?


 
Rouse_ ©   (2004-04-24 12:28) [4]

По skylink не в курсе, но если мобильный подключен как модем - до конечно будет...


 
Verg ©   (2004-04-24 12:39) [5]


> Rouse_ ©   (24.04.04 10:28) [2]


GetIpNetTable вернет содержимое ARP кэша.
Так что, перед этим надо хотя бы попинговать целевой IP.


 
Piter ©   (2004-04-24 13:01) [6]

Rouse_ (24.04.04 12:28) [4]
но если мобильный подключен как модем - до конечно будет...


Да? Всю жизнь думал, что MAC адрес есть только у сетевых карт, для них и предназначен.

Verg (24.04.04 12:39) [5]
GetIpNetTable вернет содержимое ARP кэша.
Так что, перед этим надо хотя бы попинговать целевой IP


а что это даст? пинговаться будет, исходя из буфера...


 
Rouse_ ©   (2004-04-24 13:15) [7]

> Так что, перед этим надо хотя бы попинговать целевой IP.
Забыл это упомянуть...

> Да? Всю жизнь думал, что MAC адрес есть только у сетевых
> карт, для них и предназначен.

Да ну?
Стало быть только для сетевых и точка?
Ну-ну...


 
uny   (2004-04-24 13:22) [8]

Piter, а ваша программа которая по интерфейсам считает трафик даже определила какой то мак номер, но он странный - так это не он?


 
Piter ©   (2004-04-24 13:26) [9]

uny   (24.04.04 13:22) [8]
это не он?


не знаю

Rouse_ (24.04.04 13:15) [7]
Да ну?
Стало быть только для сетевых и точка?


а зачем MAC адрес модему?


 
Rouse_ ©   (2004-04-24 14:03) [10]

> [9] Piter ©   (24.04.04 13:26)
Ну давай вспомним семиуровневую модель OSI

OSI Model Layer

  --------------  -----------------------------------------------------
               |  |                                                  |
  7 - Applica- |  |        User Applications                         |
      tion     |  |                                                  |
  --------------  -----------------------------------------------------
  --------------  -----------------------------------------------------
               |  |           Operating System                       |
  6 - Presen-  |  |                  &                               |
      tation   |  |       Microsoft OS/2 LAN Manager                 |
  --------------  -----------------------------------------------------
                  ********** NetBIOS Interface **********************
  --------------  --------------- ------------ ----------- ------------
               |  |           | |          | |         | |           |
  5 - Session  |  | Microsoft | | XNS      | | Other   | | Ungermann |
               |  | NetBEUI   | | Protocol | | Protocol| |  Bass     |
  --------------  | Protocol  | | Driver   | | Driver  | | PCNIU     |
  --------------  | Driver    | |          | |         | | Driver    |
               |  |           | |          | |         | |           |
  4 - Trans-   |  |           | |          | |         | |           |
      port     |  |           | |          | |         | |           |
  --------------  |           | |          | |         | |           |
  --------------  |           | |          | |         | |           |
               |  |           | |          | |         | |           |
  3 - Network  |  |           | |          | |         | |           |
               |  |           | |          | |         | |           |
  --------------  ------------- ------------ ----------- |           |
                    ********** NDIS Interface  ********* |           |
  --------------  ------------- ------------ ----------- |           |
               |  | IBM Token | |3Com Ethnt| | Other   | |           |
  2 - Data     |  | Ring MAC  | |  MAC     | | MAC     | |           |
      Link     |  |  Driver   | | Driver   | | Driver  | |           |
  --------------  ------------- ------------ ----------- -------------
  --------------  ------- ------- ------------ ----------- ------------
               |  | TR  | | TR  | | Ethernet | | Other   | | UB PCNIU |
  1 - Physical |  |Adptr| |Adptr| | Adapter  | | Adapter | |   LAN    |
               |  | #1  | | #2  | |          | |         | |  Adapter |
  --------------  ------- ------- ------------ ----------- ------------


Внимательней присмотрись к второму уровню...


 
Piter ©   (2004-04-24 14:10) [11]

а где тут IP интерфейс?


 
Piter ©   (2004-04-24 14:14) [12]

а-а-а... я понял.

Я только не понял ответа на свой вопрос:

>а зачем MAC адрес модему?


 
Verg ©   (2004-04-24 14:30) [13]


> Piter ©   (24.04.04 13:01) [6]
> Verg (24.04.04 12:39) [5]
> GetIpNetTable вернет содержимое ARP кэша.
> Так что, перед этим надо хотя бы попинговать целевой IP
>
> а что это даст? пинговаться будет, исходя из буфера...


Как что даст?! Это даст то, что в ARP кэше появится MAC адрес целевого хоста.

Все это вообще справедливо (И ARP-кэш и SendARP) только, если мы находимся в одном физическом сегменте с тем самым IP-MAC-икс хостом.


 
Rouse_ ©   (2004-04-24 15:11) [14]

> а что это даст? пинговаться будет, исходя из буфера...
Из какого?

> а зачем MAC адрес модему?
Ответ я тебе уже дал...


 
Piter ©   (2004-04-24 15:19) [15]

Verg (24.04.04 14:30) [13]
Как что даст?! Это даст то, что в ARP кэше появится MAC адрес целевого хоста


а, ну да. Я про то, что если в буфере есть такая запись - то заново пинговать не надо.
Так что лучше посмотреть - есть ли она, а уж потом попинговать, если нету.

Verg (24.04.04 14:30) [13]
Все это вообще справедливо (И ARP-кэш и SendARP) только, если мы находимся в одном физическом сегменте с тем самым IP-MAC-икс хостом


Я тоже так считаю. Только вот ESSNT при сканировании выдает MAC адрес удаленного компьютера... а происходит все в интернете, связь только по IP...


 
Verg ©   (2004-04-24 15:22) [16]

ARP - Address Resolution Protocol

  Между физическими ethernet-адресами и логическими IP-адресами
  никакого прямого соответсвия нет. Для того, чтобы отправитель
  пакета мог узнать, по какому физическому адресу отпрявлять пакет,
  существует протокол ARP (Address Resolution Protocol). ARP описан
  в RFC826

  ARP"овский пакет состоит из ethernet"овского заголовка, за которым
  идут собственно ARP"овские данные.

       typedef struct
           {
           ushort      arp_hardware;
           ushort      arp_protocol;
           uchar       arp_alen_hard;
           uchar       arp_alen_ip;
           ushort      arp_opcode;
           uchar       arp_asrc_hard[6];
           ulong       arp_asrc_ip;
           uchar       arp_adst_hard[6];
           ulong       arp_adst_ip;
           }
           arp_packet;

  arp_hardware  - 1, обозначает, что мы живем на ethernet"е
  arp_protocol  - 0x800. Обозначает, что мы разговариваем по IP, а не по,
                  скажем, IPX"у.
  arp_alen_hard - 6, длина аппаратного адреса.
  arp_alen_ip   - 4, длина логического (IP) адреса
  arp_opcode    - 1 - для ARP-запроса (ARP-request)
                  2 - для ARP-ответа (ARP-reply)
  arp_asrc_hard - аппаратный адрес отправителя
  arp_asrc_ip   - IP-адрес отправителя. Может быть 0, если отправитель
                  не знает своего адреса (а только собирается узнать)
  arp_adst_hard - аппаратный адрес получателя. В arp-запросе поле
                  не используется, поскольку адреса получателя мы
                  еще не знаем.
  arp_adst_ip   - IP-адрес получателя.

  ARP работает следующим образом. Машина, желающая что-то отправить
  по данному IP-адресу, формирует ARP-запрос, заполняя в нем все, кроме
  аппаратного адреса получателя пакета. Этот пакет отправляется
  ethernet"овским бродкастом всем машинам на сети. Та машина, которая
  узнала в IP-адресе получателя себя, заполняет и отправляет назад,
  но уже юникастом, ARP-ответ. При получении ARP-ответа надо проверить,
  что IP-адрес отправителя - это то, что мы хотели, и взять из
  ARP-пакета (но не ethernet"овского хидера!) искомый аппаратный адрес.
  Поскольку ARP-запросы посылаются бродкастом, а в ARP-ответе не
  ethernet"овский заголовок никто не смотрит, можно сделать ARP-сервер,
  который посылает ARP-ответы за кого-то. Иногда эта возможность бывает
  полезной.

  Хотя этого нигде и не сказано, ARP-овские пакеты надо посылать
  с интервалом где-нибудь в полсекунды раз шесть, пока не будет
  получен ответ (впрочем, если не получив ответа все равно делать
  ничего полезного нельзя, их можно посылать до бесконечности).

  Кстати, получив ARP-запрос, есть смысл запомнить из него IP и
  ethernet-адреса отправителя, скорее всего он скоро захочет с нами
  разговаривать, и они нам пригодятся. Надо только проверить, что
  эти IP-адрес правдоподобен.

  Информацию, полученную по ARP"у следует где-нибудь кешировать, и
  забывать через полминуты после последнего использования (или если
  получен более новый ARP-пакет, отменяющий наши знания). Если этого
  не делать, то после смены ethernet"овской карточки на какой-нибудь
  машине в сети, мы можем навсегда потерять возможность с ней общаться.

Copyright (c) by Alexander Pevzner (pzz@pzz.msk.ru), 1998-1999


 
Piter ©   (2004-04-24 16:26) [17]

Verg, а ты это кому? Я знаю это...


 
Verg ©   (2004-04-24 16:52) [18]


> Piter ©   (24.04.04 16:26) [17]
> Verg, а ты это кому? Я знаю это...


"Ф"сем, кто не знает.

Форум тут. Забыл?


 
Rouse_ ©   (2004-04-24 17:07) [19]

> [17] Piter ©   (24.04.04 16:26)
Мишь, поверь, все знать не возможно - очень многих вещей не знаем все мы, только каждый свои...


 
Piter ©   (2004-04-24 19:31) [20]

Rouse_ (24.04.04 17:07) [19]
а я не говорю, что знаю все. Я хотел бы узнать - нафига модему MAC адрес? Вот зачем он сетевой карточке - понятно.


 
Verg ©   (2004-04-24 19:50) [21]

Физический адрес должен быть у любого сетевого интерфейса, включая и PPP типа. Это стандарт, унификация.


 
Piter ©   (2004-04-24 20:45) [22]

а, ясно. Но при передаче данных он все равно не используется, верно?

И еще есть такой вопрос:

>Только вот ESSNT при сканировании выдает MAC адрес удаленного компьютера... а происходит все в интернете, связь только по IP...


 
Verg ©   (2004-04-24 20:53) [23]


> ESSNT


Никогда не использовал.

Ну и чему же равен МАС адрес например, www.delphimaster.ru ? :)


 
Игорь Шевченко ©   (2004-04-24 21:02) [24]

А можно вопрос к знатокам ? (сам я в сетях полный чайник)

Прочитал в MSDN про MAC-адрес:

"Represents the address of the network interface card if the physical interface corresponds to an Ethernet, Token Ring, or Fiber Distributed Data Interface (FDDI) adapter. "

Вот мой мобильник, работающий сейчас через инфракрасный порт к какому типу адаптеров относится ?


 
Verg ©   (2004-04-24 21:09) [25]


> MAC адрес удаленного компьютера... а происходит все в интернете,
> связь только по IP...


Вот у меня тут тоже всё в Интернете. Все компьютеры "удаленные".
Каждый имеет "белый" IP и МАС адрес любого я в любое время могу узнать послав либо ARP запрос, либо просто отправив ему хотя бы одну IP датаграмму (хоть пинг, хоть что, хоть просто "левак") и помотрев arp кэш указанной выше ф-цией или просто набрав arp -a. Просто потому, что все они (целый квартал, а может и больше) принадлежат одной сети (одному сегменту).


 
Verg ©   (2004-04-24 21:10) [26]


> Игорь Шевченко ©   (24.04.04 21:02) [24]


Не знаю.
Запусти FAR, набери команду ipconfig.
Она тебе все покажет.


 
Verg ©   (2004-04-24 21:12) [27]

Точнее ipconfig /all (чтобы и МАС адрес посмотреть)


 
Игорь Шевченко ©   (2004-04-24 21:20) [28]

[26] Verg ©   (24.04.04 21:10)

Угу, спасибо. показывает. Но дело в том, что у меня еще пара виртуальных сетевых адаптеров живет, у них тоже физический адрес показывается. Может, это такой же динамически присваиваемый адрес, как и IP ?


 
Verg ©   (2004-04-24 21:26) [29]


> Игорь Шевченко ©   (24.04.04 21:20) [28]


Да, например, WAN адаптерам (модемы всякие) после установления соединения им как-то (не знаю точно как) присвивается МАС адрес.
Вот, кстати программку я тут давал, можешь попробовать. Она должна определить тип интерфейса, через который ты сейчас ходишь по дефолту (default gateway) и должна остлеживать изменения этого маршрута.

http://delphimaster.net/view/6-1081483248/


 
Verg ©   (2004-04-24 21:33) [30]


>  Но дело в том, что у меня еще пара виртуальных сетевых
> адаптеров живет


Никак от VMware ? :)))


 
Игорь Шевченко ©   (2004-04-24 21:41) [31]

[29] Verg ©   (24.04.04 21:26)

Спасибо за программку, пишет, что Default gateway доступен через интерфейс типа PPP (115200 bps) (насколько я понимаю, 155 кило, это скорость самого Ir-порта)

[30] Verg ©   (24.04.04 21:33)

От него :) Пытался виртуальную машину с Windows 3.11 связать через сетевой адаптер с хост-системой, не вышло. Сотру, наверное.


 
Verg ©   (2004-04-24 21:51) [32]


> От него :) Пытался виртуальную машину с Windows 3.11 связать
> через сетевой адаптер с хост-системой, не вышло. Сотру,
> наверное.


А я FreeBSD-ойку (5.1) на WMware "мучаю" . Ничего, почти как настоящая получилась :))) Все пашет, но не летает конечно, но ничего, вполне меня устраивает. midnight и glib где-то полчаса (может и больше) собирала...
Виртуальная сетка работает вполне зачудительно.
Сейчас хочу FreePascal поставить на нее. Пока не получается :(
Немного пиво и усталость мешает...


 
uny   (2004-04-24 22:25) [33]

Игорь Шевченко
скажите пожалуйста, если оплата по трафику - мегабайт сколько стоит?
(в пункте [31])


 
Игорь Шевченко ©   (2004-04-24 22:28) [34]

32] Verg ©   (24.04.04 21:51)


> FreeBSD-ойку (5.1) на WMware "мучаю"


Удачи! Я Unix"ы обычно Native ставлю, без VMware. Собственно, я хотел именно Windows 3.1 (3.11 посмотреть).

Так что из себя представляет MAC-адрес, все-таки, для виртуальных адаптеров ?


 
Игорь Шевченко ©   (2004-04-24 22:39) [35]

[33] uny   (24.04.04 22:25)

$0,25/0,17 за мегабайт без НДС (вторая цифра после 22 часов и в выходные)


 
Piter ©   (2004-04-24 23:07) [36]

Verg (24.04.04 20:53) [23]
Ну и чему же равен МАС адрес например, www.delphimaster.ru


не могу посмотреть. Программа сканит по NetBios"у, а когда я включаю его в удаленном соединении - у меня что-то все виснет. Хочешь - посмотри сам. Программа называется ESSNT - Essential Net Tools - сканер.

Я тебя уверяю, ошибки быть не может. У меня не было сетевой карточки вообще. Соединялся я помню по dial-up". И сканировал нужный мне диапазон - так вот в колонке MAC address появлялся мак адрес удаленноо компьютера. не у всех, но у многих был. Причем, не думаю, что цифры взяты с потолка. Возможно, в NB есть какие-то функции для этого...
Или как бы ты мог объяснить данный факт?


 
uny   (2004-04-25 09:55) [37]

>$0,25/0,17
у меня skylink и 3руб мег, всегда. толи радоваться, то ли ждать когда подорожает - кого ни спросишь везде дороже:)


 
Piter ©   (2004-04-25 18:15) [38]

Piter (24.04.04 23:07) [36]
так вот в колонке MAC address появлялся мак адрес удаленноо компьютера. не у всех, но у многих был. Причем, не думаю, что цифры взяты с потолка. Возможно, в NB есть какие-то функции для этого...
Или как бы ты мог объяснить данный факт?



Страницы: 1 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.023 c
4-1083832354
Аноним
2004-05-06 12:32
2004.06.13
Отмена минимизации окна


14-1085738439
syte_ser78
2004-05-28 14:00
2004.06.13
Учебник по Turbo Vision


1-1086082142
Yuriy
2004-06-01 13:29
2004.06.13
FastNet под Delphi7


6-1082888713
Khvalera
2004-04-25 14:25
2004.06.13
NMStrmServ и NMStrm


3-1084954099
Tomkat
2004-05-19 12:08
2004.06.13
функция Date в FireBird