ورود

View Full Version : آموزش: روش به دست آوردن IpAddress به وسیله ی Winsock



pe32_64
چهارشنبه 06 مهر 1390, 13:55 عصر
با این روش می توانید آدرس های محلی کامپیوتر خود را به وسیله ی Winsock به دست آورید.
پس از لینک کردن فایل lib و اضافه کردن فایل h به صورت زیر ادامه می دیم:

کتابخانه ی winsock را آماده به کار می کنیم:



WSADATA wsaData;
int iResult;
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0)
return FALSE ;


تابع گرفتن اسم محلی را صدا می زنیم:



CHAR szHost[257];
gethostname(szHost,256);


بعد تابع گرفتن آدرس های محلی از اسم محلی را صدا می زنیم:



HOSTENT* host = 0;
host = gethostbyname(szHost);


در آخر اسم و آدرسهای محلی رو چاپ می کنیم و کتابخانهWinsock رو از حالت آماده به کار خارج می کنیم:



str.AppendFormat("Host Name : %s\r\nHost IpAddresses:",host->h_name);
for(int i = 0;host->h_addr_list[i];i++)
str.AppendFormat(("\r\n%s"),inet_ntoa(*(in_addr*)host->h_addr_list[i]));
WSACleanup();





یک برنامه ی کامل هم که این کارا رو انجام می ده براتون گذاشتم
اگه مطالب به دردتون خورد تشکر هم بکنید!