Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать Ip полученный после удачного дозвона?

388
25 декабря 2005 года
warezhka
129 / / 11.10.2004
Как узнать IP адрес назначенный при удачном соединении через модем. Если есть хендл подключения HRASCONN. Ну и соответсвенно инфа о соединении (точка входа, модем...)
243
26 декабря 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by warezhka
Как узнать IP адрес назначенный при удачном соединении через модем. Если есть хендл подключения HRASCONN. Ну и соответсвенно инфа о соединении (точка входа, модем...)


Так же как и узнать IP полученный любым другим методом. Только все что у вас уже есть нам не потребуется.
Можно пойти 2-мя путями. Путь 1 - вызвать GetAdaptersInfo(...) и путь 2 - gethostname(...) а затем gethostbyname(...). ИМХО первый вариант более предпочтительный.

388
26 декабря 2005 года
warezhka
129 / / 11.10.2004
Цитата:
Originally posted by pacific_7

Можно пойти 2-мя путями. Путь 1 - вызвать GetAdaptersInfo(...) и путь 2 - gethostname(...) а затем gethostbyname(...). ИМХО первый вариант более предпочтительный.


Только проблемка - как определить какой именно адаптер использовался при подключении и какой именно IP этого адаптера является IPшником установившегося подключения?

GetAdaptersInfo возвращает структуру но даже AdapterName в ней - это какойто внутренний ключ адаптера, а не нормальное имя девайса. Никак не пойму как связать информацию из RAS API с IP Helper.

243
27 декабря 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by warezhka
Только проблемка - как определить какой именно адаптер использовался при подключении и какой именно IP этого адаптера является IPшником установившегося подключения?
GetAdaptersInfo возвращает структуру но даже AdapterName в ней - это какойто внутренний ключ адаптера, а не нормальное имя девайса.


Тебе надо поле Description[MAX_ADAPTER_DESCRIPTION_LENGTH] - там он называется по человечески. Если сам ниасилишь, то приду домой - выложу сорец проги, которая считывает инфу о всех подключенных интерфейсах.

Цитата:
Originally posted by warezhka
Никак не пойму как связать информацию из RAS API с IP Helper.


Решительно не понял проблемы.

388
27 декабря 2005 года
warezhka
129 / / 11.10.2004
Цитата:
Originally posted by pacific_7
то приду домой - выложу сорец проги, которая считывает инфу о всех подключенных интерфейсах.


Спасибо не надо, код данной программы есть у меня от одной книжки ;-) а поле Description содержит совсем другую инфу нежели имя девайся (тама указывается например для любого из моих двух PCI модемов "PPP/SLIP интерфейс адаптер" (как то ~ так, без имени самого модема)

243
27 декабря 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by warezhka
Спасибо не надо, код данной программы есть у меня от одной книжки ;-) а поле Description содержит совсем другую инфу нежели имя девайся (тама указывается например для любого из моих двух PCI модемов "PPP/SLIP интерфейс адаптер" (как то ~ так, без имени самого модема)


Что то я тогда не понимаю, что тебе надо. У тебя же есть HRASCONN. Ты вроде как сам запустил подключение. Т.е. должен знать, что случилось в Датском королевстве :)
Если ты хочешь получить именно название модема, а не его имя (это разные вещи), то тут уже надо ковырять в сторону перечисления устройств. А это в район драйверов надо загребать. Т.е. мне просто так например лень (а главное - нету времени) с этим ковыряться. Сам если найдешь и расскажешь, то буду благодарен - интересно.

"какой именно IP этого адаптера является IPшником установившегося подключения?" все что нашел - всё твое :)

388
28 декабря 2005 года
warezhka
129 / / 11.10.2004
Цитата:
"какой именно IP этого адаптера является IPшником установившегося подключения?" все что нашел - всё твое


Верно подмечено)) а вот с поиском адаптера остается пробел. Просто в программе после дозвона - надо проверить полученный от сервера IP на оперделенный критерий, и если он ему не соответствует - перезвонить.

243
28 декабря 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by warezhka
Просто в программе после дозвона - надо проверить полученный от сервера IP на оперделенный критерий, и если он ему не соответствует - перезвонить.


Ну так в чем дело? Проверяй. Или думаешь, тебе на один модем выдастся сразу 10 IP адресов? :)
И нафига тебе так важен адаптер? Расскажи маленько, а то мне интересно даже стало.

388
29 декабря 2005 года
warezhka
129 / / 11.10.2004
Цитата:
Originally posted by pacific_7
Ну так в чем дело? Проверяй. Или думаешь, тебе на один модем выдастся сразу 10 IP адресов? :)
И нафига тебе так важен адаптер? Расскажи маленько, а то мне интересно даже стало.


Прям)улыбаюсь))
Нет конечно не 10 IP. Но впринципе 1 сетевой адаптер может иметь несколько IP.

Просто у меня в компе:
- 1 реальная сетевуха
- 1 виртуальная
- 2 модема dial-up
- + еще скрытые системные устройства какието.

Поэтому и надо определить именно тот "сетевой адаптер", который использовался при дозвоне, чтобы с него снимать инфу об IP адресе. А ваще просто закодил дозвонщик с проверкой IP-шника подключения. Чтобы дозванивался исключительно по определенным IP. (это нужно для реализации корыстных целей связанных с работой местного провайдера;-)

243
29 декабря 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by warezhka
Но впринципе 1 сетевой адаптер может иметь несколько IP.


Неужели? Я я думал список адресов в структуре для смеха сделали ;)

Цитата:
Originally posted by warezhka
Просто у меня в компе:
- 1 реальная сетевуха
- 1 виртуальная
- 2 модема dial-up
- + еще скрытые системные устройства какието.

Поэтому и надо определить именно тот "сетевой адаптер", который использовался при дозвоне, чтобы с него снимать инфу об IP адресе. А ваще просто закодил дозвонщик с проверкой IP-шника подключения. Чтобы дозванивался исключительно по определенным IP. (это нужно для реализации корыстных целей связанных с работой местного провайдера;-)


Блин! У тебя там какой-то дурдом. Дай доступ через радмин, а то нихрена не пойму, что творится. И нафига 2 модема?
Может сделать проще? IP_ADAPTER_INFO имеет поле Type. По нему можно отсеять твои модемы (MIB_IF_TYPE_PPP). Ну а из 2-х адресов уж можно наверное угадать - правильно ты дозвонился, или нет.

388
30 декабря 2005 года
warezhka
129 / / 11.10.2004
Цитата:
Блин! У тебя там какой-то дурдом.


Да какой дурдом...нормальный хаус))блин скрин диспетчера устройств прикрепить не удалось((
а 2 модема, потому что один был, а один потом на халяву достался (+ в XP SP2 2ой дозванивается лучше до провайдера по определенным номерам)

Цитата:

Может сделать проще? IP_ADAPTER_INFO имеет поле Type. По нему можно отсеять твои модемы (MIB_IF_TYPE_PPP). Ну а из 2-х адресов уж можно наверное угадать - правильно ты дозвонился, или нет.


А, впринципе, я так и делаю - сначала по типу отсеиваю MIB_IF_TYPE_PPP. А потом IP проверяю (первые числа IP мне известны). Просто все равно получается способ какой то кривоватый.

243
30 декабря 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by warezhka
Да какой дурдом...нормальный хаус))блин скрин диспетчера устройств прикрепить не удалось((
а 2 модема, потому что один был, а один потом на халяву достался


Ну это как у меня :) У меня в компе 3 сетевых карточки торчит и в принципе то же 2 модема есть, только они внешние. 1 - дата-кабель от телефона, а второй - реальный внешний модем зюхелевский.

Цитата:
Originally posted by warezhka
А, впринципе, я так и делаю - сначала по типу отсеиваю MIB_IF_TYPE_PPP. А потом IP проверяю (первые числа IP мне известны). Просто все равно получается способ какой то кривоватый.


Как сделать более прямо я тебе уже сказал. Заняться перечислением девайсов что бы по имени вычислить твой модем. Только это ой какой загадочный путь... Так что видимо придется пока так.

388
01 января 2006 года
warezhka
129 / / 11.10.2004
РЖУ... RasGetProjectionInfo - Рулезз!!!

С Новым Годом товарищи!
243
01 января 2006 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by warezhka
РЖУ... RasGetProjectionInfo - Рулезз!!!


Ну вот видишь, как всегда - все не так сложно как казалось бы... :)
Приведи пример кода что ли... Раз уж разобрался - поделись с другими.

388
02 января 2006 года
warezhka
129 / / 11.10.2004
Цитата:
Originally posted by pacific_7
Приведи пример кода что ли... Раз уж разобрался - поделись с другими.


Всё просто, после дозвона

Код:
RASPPPIP RasIP;
DWORD dwSize;
dwSize = sizeof(RASPPPIP);
RasIP.dwSize = dwSize;
DWORD dwRet = RasGetProjectionInfo(m_lphRasConn, RASP_PppIp, &RasIP, &dwSize);
if (0 == dwRet)
{
  //Проверка IP, например
  if (('1' == RasIP.szIpAddress[0])
  &&  ('9' == RasIP.szIpAddress[1])
  &&  ('2' == RasIP.szIpAddress[2])
  &&  ('.' == RasIP.szIpAddress[2]))
 {
   //IP начинается на 192.
 }
 //...

}
243
02 января 2006 года
pacific_7
1.9K / / 06.09.2004
Одно маленькое дополнение:
 
Код:
//Проверка IP, например
  if (('1' == RasIP.szIpAddress[0])
  &&  ('9' == RasIP.szIpAddress[1])
  &&  ('2' == RasIP.szIpAddress[2])
  &&  ('.' == RasIP.szIpAddress[2]))

ИМХО лучше использовать стандартные библиотечные функции и поменять неколько условий на одно:
 
Код:
if(strstr(RasIP.szIpAddress,"192")==&RasIP.szIpAddress)
{
//то делаем, что нам нужно
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог