죄송합니다 ㅠㅠ.. 제가 머리가 나쁜건지 급해서 그러는건지 모르지만
잘 안되네요..
성호님이 번역해주신 코드를 어떤 컴포넌트에 입력해야하는지
직접 눈으로 확인하려면 어떻게 하는지 알고 싶습니다.
그럼 많은 도움 부탁드립니다..
장성호 님이 쓰신 글 :
: 위 답변에 링크된 팁의 코드는
:
http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=235
: function LocalIPList: TStrings;
: type
: TaPInAddr = array[0..10] of PInAddr;
: PaPInAddr = ^TaPInAddr;
: var
: phe: PHostEnt;
: pptr: PaPInAddr;
: Buffer: array[0..63] of Char;
: I: Integer;
: WSAData: TWSAData;
: begin
: WSAStartup(MakeWord(2, 2), WSAData);
: Result := TStringList.Create;
: Result.Clear;
: GetHostName(Buffer, SizeOf(Buffer));
: phe := GetHostByName(buffer);
: if phe = nil then Exit;
: pPtr := PaPInAddr(phe^.h_addr_list);
: I := 0;
: while pPtr^[I] <> nil do
: begin
: Result.Add(inet_ntoa(pptr^[I]^));
: Inc(I);
: end;
: WSACleanUp;
: end;
:
:
: 대충 아래와 같이 C++Builder로 번역이 될것 같습니다.
:
: TStringList * LocalIPList()
: {
: char Buffer[64];
: int I;
: WSADATA wsaData;
: PHOSTENT lpHostent = NULL;
: struct sockaddr_in addr;
: WSAStartup(MAKEWORD( 2, 0 ), &wsaData);
: TStringList *Result=new TStringList;
: Result->Clear();
: gethostname(Buffer, sizeof(Buffer));
: lpHostent = gethostbyname(Buffer);
: if( lpHostent == NULL )return NULL;
: I = 0;
: while(lpHostent->h_addr_list[I] != NULL)
: {
: memcpy( &(addr.sin_addr), lpHostent->h_addr_list[I], lpHostent->h_length );
: Result->Add( inet_ntoa(addr.sin_addr) );
: I++;
: }
: WSACleanup();
: return Result;
: }
:
:
: 그럼..
:
: 번외편 님이 쓰신 글 :
: : 허걱 ㅠㅠ;;;
: : 죄송하지만 제가 델파이를 아예 볼줄 몰라서요..
: : 가끔 가끔 몇줄은 이해가 가지만 이걸봐도 이해가 되지는 않네요...
: :
: : civilian 님이 쓰신 글 :
: : :
http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=235
: : :
: : : 델파이용이긴 합니다만...
: : :
: : : 번외편 님이 쓰신 글 :
: : : : IP 보는방법을 이런식으로 해봤습니다. 여기까지는 동작이 잘 되는데요
: : : :
: : : : void __fastcall TForm1::Timer1Timer(TObject *Sender)
: : : : {
: : : : char S[100];
: : : :
: : : : in_addr inadd=ClientSocket1->Socket->LookupName("");
: : : : wsprintf(S,"%d.%d.%d.%d",inadd.S_un.S_un_b.s_b1
: : : : ,inadd.S_un.S_un_b.s_b2
: : : : ,inadd.S_un.S_un_b.s_b3
: : : : ,inadd.S_un.S_un_b.s_b4);
: : : :
: : : :
: : : : Label9->Caption = S;
: : : : }
: : : :
: : : : 그런데 저는 IP 2개(랜카드 2개) 다 보고 싶습니다.
: : : : 위 방법을 2개를 써서 해보니 한개의 IP만 잡히네요.
: : : : 위와 같은 방법으로는 2개를 잡을수가 없는건지
: : : : 안된다면 어떤방법으로 잡아야하는지 알려주셨으면 합니다.