Форум: "Основная";
Текущий архив: 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.48 MB
Время: 0.008 c