Q&A

  • [질문] 내 PC의 IP를 알아내는 방법이 뭘까요
수고들 하십니다.

TCP서버소켓을 사용하여 장비와 통신중인데요,,

현재 프로그램이 돌고있는 자신의 PC의 IP를 읽어내는 방법이 있을거 같은데,

서버소켓컴퍼넌트안에 그런 함수가 있나요?

어떻게 하는건지 조언을 부탁드립니다.

3  COMMENTS
  • Profile
    김신광 2010.05.13 22:23
    제가 사용하는 내PC ip 가지고 오는 방법입니다 ㅎㅎㅎ

    function GetLocalIP : String;
    type
    TaPInAddr = array [0..10] of PInAddr;
    PaPInAddr = ^TaPInAddr;
    var
    phe: PHostEnt; // HostEntry 구조체
    pptr: PaPInAddr;
    Buffer: array [0..MAX_PATH] of char;
    i: Integer;
    begin
    Result := '';
    GetHostName(Buffer, SizeOf(Buffer));
    phe := GetHostByName(buffer);
    if phe = nil then
    Result := '127.0.0.1'
    else
    begin
    pptr := PaPInAddr(Phe^.h_addr_list);
    i := 0;
    while pptr^[i] <> nil do // Multi-Homed 일 경우는 여러개의 IP가 있을 수 있으므로
    begin
    Result := StrPas(inet_ntoa(pptr^[i]^));
    Inc(i);
    end;
    end;
    end;
  • Profile
    김대규 2010.05.13 23:49
    감사합니다^^ 많은 도움 되었습니다.
  • Profile
    이용벽 2010.05.14 00:22
    LAN Card가 여러 개이면 함수 결과가 어떻게 나오게 될까요?