Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

Ошибка в Win98 при определении IP-adressa   Найти похожие ветки 

 
Diaskhan   (2004-10-30 15:33) [0]

Diaskhan from Kazakhstan .
Кто-нибудь сталкивался с ошибкой gethostbyname в Win98.
Простой код определения IP gethostbyname() нафик непашет
под Win 98 (4.10).
Подскажите другие способы нахождения IP.
Пробовал ws2_32.dll,Пробовал winsock2.dll - непомогает.
Еслия указываю ip в настройках сети вручную, то код работает..
А вот если ставить IP автоматом, то код просто напросто глохнет.. (прога виснет и все )...

Что посоветуете Мастера DELPHI. Я думаю что это ошибка win98.
И ни че с этим поделать нельзя....
А только выкинуть нафиг WIN98..(Вы уж извините за лексику ,уже 3 месяца парюсь с gethostbyname) ...

А написать я собственно хотел алгоритм поиска полного сетевого древа и засунуть его в CHAT-проггу...
(-это поддерживаемый символ).


 
Vit@ly ©   (2004-10-30 17:20) [1]

К gethostbyname() под Win98 у меня претензий нет (какого сетевого дерева, для локалки?).
Выложи хотя бы частично код


 
Piter ©   (2004-10-30 17:43) [2]

ошибка у кого-то в ДНК...


 
Diaskhan   (2004-11-01 20:15) [3]

(Насчет ДНК хорошо подкололи).
Пишу я chat проггу..
В ней есть treeviev, туда я сую все домены, группы,и хосты (в иеарархическом порядке).
После нажатия на имя хоста должен определятся IP.
Но прога виснет..

Замечу что, другая программа (которая тоже написана на delphi) тоже не может
определить свой и чужой IP"ник (win98) .
А после того как я впишу IP"ник вручную в TCP протоколе, прогга в состоянии определить любой IP"ник.

Еще раз повторяю поблема лежит
в том,что если в установках TCP протокола (win98 )
ставить автоназначение IP, то из-за gethostbyname виснет прогга,
для  локального и  удаленного хоста.
А если в установках TCP протокола ставить IP"ник вручную, то код пашет.

Возможно bug?(win 98).

Если никто не понимает, то я хочу узнать другие
функции определния IP, и если кто знает в чем заключается ошибка(win 98)
- подскажите пожалуйста..

В коде нет никаких ошибок, так как я брал их с faq"ов .
Может проблема заключается  в тонкости настроек TCP-протокола.
Я хочу понять в чем заключается ошибка win98,
так как знаю что мой код в порядке(взятый с различных faq"ов).

А вы сами понимаете IP"ник  в любом случае должен определятся.
Так как это базовое условие сети.

Кто хочет реально помочь мне - Могу выслать исходники..

1.Это пробовал 
function LocalIP: string;
type
 TaPInAddr = array[0..10] of PInAddr;
 PaPInAddr = ^TaPInAddr;
var
 phe: PHostEnt;
 pptr: PaPInAddr;
 Buffer: array[0..63] of Char;
 I: Integer;
 GInitData: TWSAData;
begin
 WSAStartup($101, GInitData);
 Result := "";
 GetHostName(Buffer, SizeOf(Buffer));
 phe := GetHostByName(buffer);
 if phe = nil then Exit;
 pPtr := PaPInAddr(phe^.h_addr_list);
 I := 0;
 while pPtr^[I] <> nil do
 begin
   Result := inet_ntoa(pptr^[I]^);
   Inc(I);
 end;
 WSACleanup;
end;

2.Это пробовал 

const winsock_version=$0101;
var    Name :pchar;     wsadata:tWSAData;    p:PHostEnt;
begin

try
 WSAStartup(WINSOCK_VERSION, WSAData);
 p := GetHostByName(PChar(TreeView.Selected.Text)); {виснет}

 edit1.text:=(inet_ntoa(PInAddr(p.h_addr_list^)^)); except end;

 WSACleanup; end;


 
Verg ©   (2004-11-01 20:45) [4]


> А вот если ставить IP автоматом, то код просто напросто
> глохнет.. (прога виснет и все )...


DHCP ? А он вообще есть в сети-то?
Вот нет его и твой комп не получает Ip адрес. Ну и все, кирдык ему навечно.



- это что, цитаты из кроссворда?


 
Diaskhan   (2004-11-03 00:08) [5]

Дорогой VERG пожалуйста разьесни че почем и как его настроить.
И вообще он в win98 ставиться автоматом или нет. (дай ссылку как бороться с этим).
И существуют ли другие способы нахождения IP.(ответь пожалуйста).
А  (скаже по секрету)-это комбинация клавишы ctrl+backspase(в текстовом редакторе).


 
Verg ©   (2004-11-03 00:27) [6]

Ну если ты сказал компу получать IP адрес автоматически, то это значит, что ты ему сказал запрашивать параметры сети от сервера. От сервера под названием DHCP. Т.е. в этой сети должен присутствовать (быть в наличии) этот самый DHCP-сервер. Если твой комп не сможет получить параметры сети (IP - адрес в первую очередь) от этого сервера, в силу его (DCHP-сервера), например, отсутствия, то и комп твой будет "болтаться" в IP сети, как неприкаянная душа. А так как выяснялки типа GetHostByName производятся при непосредсвенном участии DNS сервера (который хронит в себе, грубо говоря, таблицу соответствия имен компов и их IP адресов) посредством протокола UDP, базирующемся на "движеке" IP, то без получения IP адреса, никакой такой сервис живым стать не может в принципе.


 
Verg ©   (2004-11-03 00:28) [7]


> А  (скаже по секрету)-это комбинация клавишы ctrl+backspase(в
> текстовом редакторе).


Я не кому не скажу - ты мне объясни нафига ты эти квадратики в свои посты вставляешь?


 
Digitman ©   (2004-11-03 12:38) [8]


> В коде нет никаких ошибок, так как я брал их с faq"ов .


с каких это пор faq"и являются гарантией "безошибочности" того, что в них нахреноверчено самым разношерстным народом ? зачастую попросту дилетантами ?


> код просто напросто глохнет.. (прога виснет и все )


на то есть встроенный отладчик.
который покажет, действительно ли "вис" происходит именно на GetHostByName

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

далее.

вот ты пишешь p := GetHostByName(чего-тот там)
почему не анализируешь рез-т работы ф-ции ? опять же при том предположении, что ты попросту не дожидаешься ее завершения ?


 
Diaskhan   (2004-11-03 15:06) [9]

И что не получится определить IP
И что надо настройть DHCP ?

А вобще стоило бы создать FAQ терминологию.


 
Verg ©   (2004-11-03 15:12) [10]


> Diaskhan   (30.10.04 15:33)
> А вот если ставить IP автоматом, то код просто напросто
> глохнет.. (прога виснет и все )...


Так. Все с начала.

Что тебя заставляет "ставить IP автоматом"? Зачем?


 
Diaskhan   (2004-11-03 19:46) [11]

Удалено модератором
Примечание: За речью следи...


 
Diaskhan   (2004-11-05 00:00) [12]

Im sory for my Russia .
..::VIRG::.. Просто я хотел бы сделать независимую проггу .
Которая была бы универсальной.
Если я не разбирусь с этим ,то буду считать свою прогу полным отстоем.. И пропадет вообще желание ее доделовать.
А я хочу сделать проггу по совести, сделать 1 раз , нежели ее 100 раз переделавать.

Посоветую стоит ли эту проблему вообще решать.
Или это полнейший маразм.

Люди добрые подайте советов на программу.
Бох вас отблагодарит.
Хотя он сейчас занят.Можно чуть-чуть попозже.

А квадратик если чесно для понта ставил
(хотя это дешевые понты ).

Но все таки лучше иметь ошибочно мнение, чем не иметь вообще никакого.
По типу 1 или 0. Лучше пускай 0 стремится к 1 ,чем никуда не сремится. 0>1...

То что от опыта пришло к опыту вернется  ..::Ейнштеин::..


 
Diaskhan   (2004-11-06 21:10) [13]

Удалено модератором



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

Форум: "Сети";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.035 c
11-1086289358
hammer
2004-06-03 23:02
2005.01.23
Mouse Wheel


1-1105107600
Макс
2005-01-07 17:20
2005.01.23
помогите написать программу


14-1104901142
YurikGL
2005-01-05 07:59
2005.01.23
Бреш в файрволлах!!!


1-1105448371
nap
2005-01-11 15:59
2005.01.23
лексический анализатор


1-1105602524
Gek1
2005-01-13 10:48
2005.01.23
Маленькие буквы в строке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский