Ip машины

Тема в разделе "Delphi - Сети", создана пользователем ISMD, 25 июл 2006.

Статус темы:
Закрыта.
  1. ISMD

    ISMD Гость

    Зравствуйте!

    У меня возникла такая проблема: как программно определить IP машины (в internet)?

    И ещё одна: это связано с использованием функции CopyFile, где одним из параметров является адрес назначения файла (куда скопировать). Адреса типа '//имя_машины/папка/файл' не работают.

    Спасибо!
     
  2. zubr

    zubr Гость

    Код (Text):
    function GetLocalIP: String;
    const WSVer = $101;
    var
    wsaData: TWSAData;
    P: PHostEnt;
    Buf:PChar;
    begin
    Buf:=StrAlloc(128);
    Result := '';
    if WSAStartup(WSVer, wsaData) = 0 then
    begin
    if GetHostName(Buf, 128) = 0 then
    begin
    P := GetHostByName(Buf);
    if P <> nil then
    Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
    end;
    WSACleanup;
    end;
    end;
    Должно работать, может ты что то не так делаешь, или комп на который ты пытаешься скопировать не в сети. Код в студию.
     
  3. ISMD

    ISMD Гость

    Код (Text):
     
    function TNWServ.SearchPlantByName(PlantName : String; Dest : String):BOOL;stdcall;
    const
    SAVED_FILE_NAME = 'C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\CDSPublishedData\PlantName.xml';
    begin
    DM.Query1.Close;
    DM.Query1.SQL.Clear;
    DM.Query1.SQL.LoadFromFile('\SQL_Reqs\PlantName.sql');
    DM.Query1.ParamByName('prmV').DataType:=ftString;
    DM.Query1.ParamByName('prmV').Value:=PlantName;
    DM.Query1.Active:=True;
    DM.ClientDataSet1.Active:=True;
    DM.ClientDataSet1.SaveToFile(SAVED_FILE_NAME,dfXML);
    Result:=CopyFile(SAVED_FILE_NAME,PChar(Dest),True);
    end;
    В параметре Dest передаётся путь назначения.

    zubr, спасибо за код :ph34r:
     
  4. zubr

    zubr Гость

    Извиняюсь за длительное отсуствие, собирался ответить и забыл, а сейчас заметил твою тему. В общем, если еще актуально:
    1. Непонятно, все таки что у тебя в переменной Dest
    2. Возможно каталог в который ты пытаешься скопировать нерасшаренный или нет доступа той машине, с которой ты пытаешься послать файл.
    3. Возможно не установлено соединение с той машиной куда ты пытаешься послать файл. Попробуй предварительно, вручную послать туда файл. Чтобы программно установить соединение с удаленной машиной надо использовать функцию WNetAddConnection2.
     
Загрузка...
Похожие Темы - машины
  1. mego4el
    Ответов:
    2
    Просмотров:
    2.066
Статус темы:
Закрыта.

Поделиться этой страницей