Q&A

  • 자신의 IP Address를 얻어올려면...
안녕하세요.

외부와 통신을 하는데 자신의 IP Address를 얻어와야 하는 경우가 생겼습니다.

프로그램 내부에서 얻어올 수 있는 방법은 없는지 알고 계신분은 도움 부탁합니다.





1  COMMENTS
  • Profile
    김명석 1999.12.23 02:32
    이희선 wrote:

    > 안녕하세요.

    > 외부와 통신을 하는데 자신의 IP Address를 얻어와야 하는 경우가 생겼습니다.

    > 프로그램 내부에서 얻어올 수 있는 방법은 없는지 알고 계신분은 도움 부탁합니다.

    >

    >

    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;

    LocalIP : String;

    i: Integer;

    begin

    LocalIP := '';



    GetHostName(Buffer, SizeOf(Buffer));

    phe := GetHostByName(buffer);



    if phe = nil then begin // IP가 Setting되있지 않으면 local ip

    LocalIP := '127.0.0.1';

    System.Exit;

    end;



    pptr := PaPInAddr(Phe^.h_addr_list);



    i := 0;

    while pptr^[i] <> nil do begin // Multi-Homed 일 경우는

    LocalIP := StrPas(inet_ntoa(pptr^[i]^)); // 여러개의 IP가 있을 수 있으므로

    // 여기에 어떤 처리루틴을 추가...

    Inc(i);

    end;

    end;