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

Вниз

Как узнать IP имени машины?   Найти похожие ветки 

 
Uran   (2002-12-02 12:00) [0]

Понадобилось быстренько написать программу определяющая по имени машины IP адресс .... вроде всё просто ..
var
WSAData : TWSAData;
p : PHostEnt;
Name : string;
begin
WSAStartup($0101, WSAData);
p := GetHostByName(Name);
showmessage(inet_ntoa(PInAddr(p.h_addr_list^)^));
WSACleanup;
end;

всё работает нормально когда пытаюсь определить айпишник компа впределах своей рабочей группы ... когда из другой ругается .."Acces violation .... " где моя ошибка подскажите пожалуйста...


 
Wonder   (2002-12-02 12:27) [1]

Access violation у тебя появляется из-за того, что ты не анализируешь результат вызова GetHostByName().
Т.е. GetHostByName() выполняется с ошибкой и возвращает nil.

If no error occurs, gethostbyname() returns a pointer to the hostent structure described above. Otherwise it returns a NULL pointer and a specific error number may be retrieved by calling WSAGetLastError().

Вообще-то, строго говоря, эта ф-ция предназначена для определения IP-адреса по имени хоста, а не по netbios-имени (хотя в сетях Microsoft так тоже можно).

Попробуй сначала "Пуск->Найти->Компьютер" и найти компьютер из другой раб. группы. Если найдется - запусти свою программу и попробуй.



 
Uran   (2002-12-02 13:51) [2]

компьютер в сети есть! :(
возник встречный вопрос, а с помощью какой фу-ии можно определить IP по netbios?


 
Wonder   (2002-12-02 13:57) [3]

С помощью ее же. GetHostByName()


 
Uran   (2002-12-02 14:00) [4]

Прости за навязчивость .. я никак не пойму что делаю не так ...
компьютер в сети есть и виндой винен .... почему ф-ия завершается ошибкой?
опиши, пожалуйста на примере если не сложно! :)


 
Wonder   (2002-12-02 14:05) [5]

Так посмотри, что за ошибка-то!
GetLastError()



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

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

Наверх




Память: 0.45 MB
Время: 0.012 c
1-86931
Hopkins
2003-01-12 17:46
2003.01.27
Как из Delphi вносить изменения в окнах апплетов (Св-ва обозр.)?


3-86692
Эдуард
2003-01-09 00:48
2003.01.27
EasyTable 4.11 не поддерживает SQL


3-86635
Natalie
2003-01-07 06:16
2003.01.27
как в репотре перейти на новую страницу??


14-87113
Dimka Maslov
2003-01-08 17:59
2003.01.27
Неправильные глаголы русского языка


7-87162
Romeo
2002-11-14 10:15
2003.01.27
Автоматический логон





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский