· Начало · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.NETWORKS —› обращение к hostent-структуре

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Авг 29, 2004 01:39:03

Уже второй час ночи, меня плющит.
Вроде(!) все правильно написано, а компилятор ругается так:

error A2006: undefined symbol : h_addr_list

сам код:
mov eax,(hostent PTR [eax]).h_addr_list


структура разумееться нигде не определена, и как мне кажеться это не требуеться в данной ситуации.
Конечно где-то есть ошибка.


Дата: Авг 29, 2004 05:41:45

> структура разумееться нигде не определена,
> и как мне кажеться это не требуеться в данной ситуации.
все-таки она где-то определена, иначе бы транслятор ругнался на hostent, а вот h_addr_list уже не определен.
попробуй дать вместо этого h_addr или посмори inc-файл (просто у меня его сейсас нет под рукой и я не помню как точно это поле там определяется)


Дата: Авг 29, 2004 11:23:18 · Поправил: NoName

kaspersky
> посмори inc-файл
Да и в правду в windows.inc в масме ее элемент h_addr_list определен как h_list. Странно, должно ведь быть то что я пишу, а там совсем другое.


Дата: Авг 31, 2004 18:58:31

Проблемка тут такая вылезла странная...
После перехода на sin1 прога падает (вылетает без сообщений). Кто бы мог сказать что здесь неверно?
invoke gethostbyname,offset UServer ;здесь 100% домен
cmp eax,0
je NotFoundInDNS
jmp sin1
jmp something
sin1:
mov eax,(hostent PTR [eax]).h_list ;вероятно здесь ошибка
mov eax,[eax]
mov eax,[eax]
mov sin.sin_addr,eax
ret


Дата: Сен 2, 2004 21:02:07 · Поправил: AEX CHECKER

NoName
mov eax,(hostent PTR [eax]).h_list ;вероятно здесь ошибка
mov eax,[eax]
mov eax,[eax]
mov sin.sin_addr,eax


Тебе, наверное, нада так:
INVOKE gethostbyname,addr Bufer
mov    eax,[eax+12]
mov    eax,[eax]           ;Get IP address
mov    eax,[eax]
INVOKE inet_ntoa,eax


Дата: Сен 3, 2004 18:17:51

AEX CHECKER
„INVOKE inet_ntoa,eax“
да, я это уже сам понял.

Вот немножко переделанный код, зараннее извиняюсь за ламеризм. Проблема теперь в том, что вместо ип он мне пишет какой-то бред. Я вывожу HIP окно, но там вместо ip появляются китайские заклинания.
mov eax,[eax + 0Ch]
mov eax,[eax]
mov eax,[eax]
mov sin.sin_addr,eax
mov NIP,eax ;net
invoke ntohl,eax ;что с этим, что без этого - одно и тоже.
mov iad.S_un.S_addr,eax ;in_addr struct
invoke inet_ntoa,offset iad
cmp eax,0
je login 
mov HIP,eax ;host


Дата: Сен 3, 2004 18:18:48

Вообще тут видел ссылку на dns-mx. Сейчас пытаюсь разобраться в том коде, очень неплохой пример.


Дата: Сен 4, 2004 20:58:11

Проблему до сих пор не решил. Вместо ип адреса мне выпадает dx4. Я подумал что это "спец." код, но в доках этого похоже нигде нет. Ищем.


Дата: Сен 5, 2004 09:02:04

NoName
 invoke gethostbyname,ebx
	     if_err No_Find_Host
	     mov   ebx,eax
	     mov   eax,[hs.h_list]
	     mov   eax,[eax]
	     mov   eax,[eax]
	     mov   [SA.sin_addr],eax
	     invoke connect,[hSock],SA,SA.size

Вот такое у меня работает. Структура hs.h_list ассациирована с регистром ebx.


Дата: Сен 6, 2004 12:03:18 · Поправил: NoName

ок, сейчас посмотрим...


Дата: Сен 6, 2004 12:21:13

Мне необходимо получить ип в локальном, а не сетевом виде, но подключиться это не проблема.
Если будешь писать исходники приписывай как ассоциируешь тот же ebx, а то я могу непонять.
Спасибо.


Дата: Сен 7, 2004 04:28:31

NoName
virtual at ebx
hs hostent
end virtual


Дата: Сен 12, 2004 00:18:59

А нет ли разницы что передавать ф-ции gethostbyname?
Т.е. адрес строки или указатель на элемент структуры hostent.
Я вот тут посмотрел справочник и стал сомневаться в разумности некоторых авторов пишущих про сокеты...


Дата: Сен 12, 2004 10:09:52

NoName
„А нет ли разницы что передавать ф-ции gethostbyname?
Т.е. адрес строки или указатель на элемент структуры hostent.“

Никакой, ИМХО, вообще передаваемый указатель рассматривается как адрес памяти, в которую необходимо, что то записать в определённой последовательности.


Дата: Сен 12, 2004 20:49:22

pas
„Никакой, ИМХО, вообще передаваемый указатель рассматривается как адрес памяти, в которую необходимо, что то записать в определённой последовательности.“
По твоему простая String equ h_addr_list (A NULL-terminated list of addresses for the host. Addresses are returned in network byte order.)?
Если да, то я уже во всем путаюсь и ничего абсолютно непонимаю в сокетах!

. 1 . 2 . >>