در این بخش می‌توانید در رابطه با شبکه و کلیه مباحث مربوط به آن بحث و تبادل نظر نمایید
Administrator

Administrator



نماد کاربر
پست ها

15442

تشکر کرده: 10108 مرتبه
تشکر شده: 3820 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

به دست آورن اطلاعات TCP

توسط Mahdi1944 » شنبه 6 خرداد 1385 20:15

با عرض پوزش خدمت دوستان باید پوزش من را در بروز نرساندن وبلاگ بپذیرید درگیر کارها شخصی بودم


آیا تاکنون از ابزار netstat استفاده کردهاید آن می خواهید بدانید این ابزار چگونه این اطلاعات را به دست می آورد؟

این نرم افزار برای به دست آوردن اطلاعات اتصالات TCP/UDP از دو تابع GetTcpTableو GetUdpTable استفاده می کند این دو تابع به صورت زیر عمل می کنند
DWORD GetTcpTable(
PMIB_TCPTABLE pTcpTable, // ساختاری برای نگهداشتن اطلاعات اتصالات
PDWORD pdwSize, // سايز ساختار
BOOL bOrder // آيا مرتب شود
);

مقدار اول اشاره دارد به ساختار PMIB_TCPTABLE که اطلاعات اتصالات را به شما میدهد این همان اطلاعاتی است که شما می توانید در netstat با استفاده از سوئیچ –a به آن برسید

این تابع در Iphlpapi.h وجود دارد و شما می توانید از آن استفاده کنیددر زیر مثالی آورده شده که از این روش برای به دست آوردن اطلاعات از آن استفاده کنيد
AnsiString mess,LocalIP,RemotIP,name;

GetTcpTable(NULL,&d,true);

pTcpTable = (PMIB_TCPTABLE)new char[d] ;

if( pTcpTable ){
if( GetTcpTable( (PMIB_TCPTABLE)pTcpTable,&d,true) == NO_ERROR ){
{

unsigned char *local_ip = (unsigned char * )&(pTcpTable->table[pTcpTable->dwNumEntries-1].dwLocalAddr);
p = (unsigned char * )&(pTcpTable->table[pTcpTable->dwNumEntries-1].dwLocalPort);
p1= pTcpTable->table[pTcpTable->dwNumEntries-1].dwLocalPort;

unsigned int local_port = *(p+0)*256 + *(p+1);

unsigned char *remote_ip = (unsigned char * )&(pTcpTable->table[pTcpTable->dwNumEntries-1].dwRemoteAddr);

p = (unsigned char * )&(pTcpTable->table[pTcpTable->dwNumEntries-1].dwRemotePort);
p2 = pTcpTable->table[pTcpTable->dwNumEntries-1].dwRemotePort;

unsigned int remote_port = *(p+0)*256 + *(p+1);


LocalIP=Format("%d.%d.%d.%d", ARRAYOFCONST((*(local_ip+0),
*(local_ip+1),*(local_ip+2),*(local_ip+3))));



RemotIP=Format("%d.%d.%d.%d", ARRAYOFCONST((*(remote_ip+0),
*(remote_ip+1),*(remote_ip+2),*(remote_ip+3))));
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

کاربران زیر از شما کاربر محترم جناب Mahdi1944 تشکر کرده اند:
sinaset

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 1 مهمان