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

Вниз

Как перевести PHostEnt в String .......   Найти похожие ветки 

 
Chlavik   (2002-10-11 03:58) [0]

Как вообще просмотреть переменную такого типа ?


 
Rouse_   (2002-10-11 04:11) [1]

Например
var
p:PHostEnt;
begin
...
Caption := String(p.h_name);
end;

Желаю успехов


 
Chlavik   (2002-10-11 04:33) [2]

Я не могу преобразовать выдаёт ошибку "Debugger Exception Notification"
когда я делаю вот это das:=string(fis.h_name);
где das - string.


 
Chlavik   (2002-10-11 04:41) [3]

df:=fis.h_length; это вообще компилятор пропускает.......???7


 
Rouse_   (2002-10-11 04:57) [4]

Дай пример кода


 
Chlavik   (2002-10-11 05:04) [5]

Function GetIp(LocalName:string):string;
var
NetPath :string;
Len, a :Cardinal;
fis:PHostEnt;
d:PChar;


begin

if WNetGetConnection(PChar(LocalName),PChar(NetPath),Len)= 234 then

begin

SetLength(NetPath,Len-1);
if WNetGetConnection(PChar(LocalName),PChar(NetPath),Len)= 0 then
begin
Delete(NetPath,1,2);
a:=Pos("\",NetPath);
NetPath:=Copy(NetPath,0,a-1);
fis:=GetHostbyName(Pchar(Netpath));
d:=fis.h_name;


NetPath:=string(d);
Result:=NetPath;
end;

end
else Showmessage(IntToStr(GetLastError));
end;
Может я туту что то нагнал потому что я походу и Delphi изучаю так что не удивляйся...


 
Rouse_   (2002-10-11 05:13) [6]

Уууу тут вообще все не правильно, начиная с инициализации
Что ты хочешь добиться этой функцией, а то я даже с трудом вникаю что она должна делать

Желаю успехов


 
Chlavik   (2002-10-11 05:20) [7]

Короче читай это мне на этом форуме посоветовали.....

"Reindeer Moss Eater (07.10.02 09:28)
Сначала получаем сетевой путь, соответствующий букве.
Извлекаем из него имя хоста. Пробуем резолвить это имя.

PS: А в в итоге может оказаться, что нет никакого IP адреса у этого хоста
.
.
.
--------------------------------------------------------------------------------
Chlavik © (09.10.02 17:59)
Я уже с этим разобрался
Короче оказалось это не то что мне нада функция возвращает
такой формат \\admin\f а мне нада \\xxx.xxx.xxx\f
где xxx.xxx.xxx - это Ip компьютера с которого через интернет подключен сетеваой диск. Если хватит терпения то напишите как это сделать? Или какуюто другую функцию которая сразу выдаст Ip.
Жду ответа!

--------------------------------------------------------------------------------
Chlavik © (07.10.02 15:06)


Понимаеш через WNetGetConnection я достал сетевое имя. В этом я уже разобрался но как мне замутить Resolve имени хоста, и как извлеч последнее( чесно говоря я не знаю что такое хост..).

Reindeer Moss Eater (10.10.02 18:22)
Достал сетевое имя. Хорошо.
Теперь извлеки имя хоста (строка между "\\" и первым одиночным "\")
После чего убедись, что это не IP адрес.
И если это не IP адрес, то наступит очередь для вызова функции GetHostByName


--------------------------------------------------------------------------------"

Короче а теперь скажи мне как правильно мне это сделать, (пожайлуста)......


 
Rouse_   (2002-10-11 05:34) [8]

Значит делай так
> Reindeer Moss Eater (10.10.02 18:22) тебе посоветовал извлечь имя хоста, правильно? Что ты и делаешь, извлекаешь имя хоста (которое между \\ и \) передаеш его следующей функции

function GetHostIP(Value: String): String;
var WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
Name:= Value+#0;
WSAStartup($0101, WSAData);
p := GetHostByName(Name);
Result:= String(inet_ntoa(PInAddr(p.h_addr_list^)^));
WSACleanup;
end;


Заменяешь хост полученым результатом и вместо \\admin\f у тебя будет \\192.168.24.1\f

Желаю успехов


 
Chlavik   (2002-10-11 05:36) [9]

Пвасиба тебе с меня пиво ... Но я тебе его не отдам :)


 
Rouse_   (2002-10-11 05:40) [10]

Ну вот, меня пивом обделилиииииииииии .....

;)))


 
Chlavik   (2002-10-11 05:43) [11]

Name:= Value+#0; <= [Error] MainUnit1.pas(218): Incompatible types: "Array" and "String" ????


 
Rouse_   (2002-10-11 05:46) [12]

Ща переделаю


 
Rouse_   (2002-10-11 05:51) [13]

function GetHostIP(Value: String): String;
var WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
move(Value[1],name[0],Length(Value));
Name[Length(Value)]:= Char(0);
WSAStartup($0101, WSAData);
p := GetHostByName(Name);
Result:= String(inet_ntoa(PInAddr(p.h_addr_list^)^));
WSACleanup;
end;


Просто не проверял, так на коленке писал ;) сори

Жеоаю успехов


 
Chlavik   (2002-10-11 05:52) [14]

А ты не запарился писать "Желаю успехов" :)


 
Rouse_   (2002-10-11 05:52) [15]

Это все пому что пиво зажал ;)))


 
Rouse_   (2002-10-11 05:53) [16]

Нет, люблю быть вежливым :))


 
Chlavik   (2002-10-11 05:58) [17]

Result:= String(inet_ntoa(PInAddr(p.h_addr_list^)^)); У меня Вот сдесь происходит оШибка оказывается если это щастье равно nil до компилятор не хочет компилировать! Это так дляобщего развития проверку я сам напишу..



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

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

Наверх





Память: 0.6 MB
Время: 0.047 c
3-68642
Tornado
2002-09-27 09:25
2002.10.21
Мастерам. Подскажите


1-68829
borg
2002-10-09 14:29
2002.10.21
Встраивание АССЕМВЛЕРНЫХ команд


7-69038
Smok_er
2002-08-12 23:51
2002.10.21
Определение версии операционной системы и привилегий пользователя


6-68899
IKarikh
2002-08-19 14:12
2002.10.21
WinSock&Proxy


14-68974
Zweroboi
2002-09-25 02:15
2002.10.21
Хочу продать лицензионную Delphi 5 Enterprise





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