Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.21;
Скачать: CL | DM;

Вниз

Как перевести 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.012 c
7-69045
watcher
2002-08-12 17:53
2002.10.21
разделы FAT под NT


14-68917
NeyroSpace
2002-10-01 11:07
2002.10.21
Open source проект


14-68924
DeMoN-777
2002-09-20 13:29
2002.10.21
Мне лично, это это интересно


7-69040
Maxim Zemskov
2002-08-08 21:48
2002.10.21
Модем


3-68681
SunnyTm
2002-09-30 22:33
2002.10.21
Как поймать исключение по несоответствию маске в EditMask?