Форум: "Сети";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Внизмак адрес по 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)
Ну давай вспомним семиуровневую модель OSIOSI 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;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 0.031 c