czwartek, 7 czerwca 2018

Computer name, user and IP. C++ Builder






#include <vcl.h>
#include <winsock.h>
#define SIZE_NAME 48
#define SIZE_USER 36
class INFO
{
public:
UnicodeString computer_Name();
UnicodeString user_Name();
UnicodeString my_IP();


};

UnicodeString INFO::computer_Name()
{

  DWORD value_Size=SIZE_NAME;
  UnicodeString value_Name;
  wchar_t *tab_Name;
  tab_Name=new wchar_t[SIZE_NAME];
  tab_Name[0]='\0';
  GetComputerName(tab_Name,&value_Size);
  value_Name=UnicodeString(tab_Name);
  delete tab_Name;
  return value_Name;

}
UnicodeString INFO::user_Name()
{
DWORD value_Size=SIZE_USER;
UnicodeString value_Name;
wchar_t *tab_Name;
tab_Name=new wchar_t[SIZE_USER];
tab_Name[0]='\0';
GetUserName(tab_Name,&value_Size);
value_Name=UnicodeString(tab_Name);
return value_Name;

}

UnicodeString INFO::my_IP()
{
hostent* temp_Info;
bool begin=true;
in_addr *temp_Address;
UnicodeString comp_Name;
AnsiString comp_String;
AnsiString value_Ansi;
UnicodeString value_Unicode;
comp_Name=computer_Name();
comp_String=comp_Name;
if(begin)
{
 WORD temp_Version=MAKEWORD(1,0);
 WSADATA temp_Data;
 WSAStartup(temp_Version,&temp_Data);
}
temp_Info=gethostbyname(comp_String.c_str());
comp_String=(AnsiString)(temp_Info->h_name);
temp_Address=(in_addr*)(*(temp_Info->h_addr_list));
value_Ansi=(AnsiString)inet_ntoa(*temp_Address);
value_Unicode=value_Ansi;
WSACleanup();
    return value_Unicode;


}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 INFO iF;
 Edit1->Text=iF.user_Name();
 Edit2->Text=iF.computer_Name();
 Edit3->Text=iF.my_IP();
}

Brak komentarzy:

Prześlij komentarz