Q&A

  • [제발좀]로컬컴퓨터의 이름 알아오기...
답변이 없어서 또 올리는데요.....

그러니까.. 컴퓨터가 랜으로 연결된데서는 컴퓨터 이름을 120, 121, 123.... 이렇게

메기 잖아요.... 이 이름을 어떻게 알아올 수 있습니까?

로컬컴의 소켓번호는 알아 올 수 있는걸 확인 했걸랑요....

제발좀 답변 주십시오......

싸부로 모시겠습니다....

3  COMMENTS
  • Profile
    bluechip 1999.12.05 22:38
    ServerSocket에서 연결될때 Client의 IP를 알고 싶다는 얘기 맞죠?



    아래 예제를 참고 하세요 !!



    procedure TForm1.ServerSocket1Accept(Sender: TObject;

    Socket: TCustomWinSocket);

    begin

    Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress;

    end;







    심형성 wrote:

    > 답변이 없어서 또 올리는데요.....

    > 그러니까.. 컴퓨터가 랜으로 연결된데서는 컴퓨터 이름을 120, 121, 123.... 이렇게

    > 메기 잖아요.... 이 이름을 어떻게 알아올 수 있습니까?

    > 로컬컴의 소켓번호는 알아 올 수 있는걸 확인 했걸랑요....

    > 제발좀 답변 주십시오......

    > 싸부로 모시겠습니다....

  • Profile
    bluechip 1999.12.05 22:26
    안녕하세요 !! bluechip입니다

    Lcoal Computer의 IP 나 Computer Name을 알아 내고 싶다는 얘기 입니다



    이 자료는 아마 이곳 어딘가에 있는것으로 알고 있습니다



    아래 Source는 누군가가 만든것을 제가 대신 올립니다. 참고하세요 !!



    1) uses절에 WinSock 추가

    2) type절에 IP_HostName = (_IP, _HOSTNAME); 추가





    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,

    WinSock; // WinSock 추가 //



    type

    IP_HostName = (_IP, _HOSTNAME); // 추가 //



    TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    // IP_Or_HostName 값에 따라 IP Address 또는 Host Name 을 구한다

    function GetLocalIPAddressOrHostName(IP_Or_HostName: IP_HostName): string;

    var

    p : PHostEnt;

    s : array[0..128] of char;

    p2 : pchar;

    wVersionRequested : WORD;

    wsaData : TWSAData;

    begin

    {Start up WinSock}

    wVersionRequested := MAKEWORD(1, 1);

    WSAStartup(wVersionRequested, wsaData);

    {Get the computer name}

    GetHostName(@s, 128);

    p := GetHostByName(@s);

    if IP_Or_HostName = _HOSTNAME then

    Result := p^.h_Name

    else

    begin

    {Get the IpAddress}

    p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);

    Result := p2;

    end;

    {Shut down WinSock}

    WSACleanup;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    showmessage( GetLocalIPAddressOrHostName( _HOSTNAME ) );

    showmessage( GetLocalIPAddressOrHostName( _IP ) );

    end;



    end.









    심형성 wrote:

    > 답변이 없어서 또 올리는데요.....

    > 그러니까.. 컴퓨터가 랜으로 연결된데서는 컴퓨터 이름을 120, 121, 123.... 이렇게

    > 메기 잖아요.... 이 이름을 어떻게 알아올 수 있습니까?

    > 로컬컴의 소켓번호는 알아 올 수 있는걸 확인 했걸랑요....

    > 제발좀 답변 주십시오......

    > 싸부로 모시겠습니다....



  • Profile
    1999.12.05 22:22
    심형성 wrote:

    > 답변이 없어서 또 올리는데요.....

    > 그러니까.. 컴퓨터가 랜으로 연결된데서는 컴퓨터 이름을 120, 121, 123.... 이렇게

    > 메기 잖아요.... 이 이름을 어떻게 알아올 수 있습니까?

    > 로컬컴의 소켓번호는 알아 올 수 있는걸 확인 했걸랑요....

    > 제발좀 답변 주십시오......

    > 싸부로 모시겠습니다....



    델파이 DEMOS 셈플 예제에 잘있더군요...^^