青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 224  文章 - 41  trackbacks - 0
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

享受編程

常用鏈接

留言簿(11)

隨筆分類(159)

隨筆檔案(224)

文章分類(2)

文章檔案(4)

經典c++博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

原文地址:http://blog.csdn.net/yulinlover/archive/2009/02/08/3868824.aspx

public class NativeFunc   
{   
    [StructLayout(LayoutKind.Sequential)]   
    
public class MIB_TCPROW   
    
{   
        
public int dwState;   
        
public int dwLocalAddr;   
        
public int dwLocalPort;   
        
public int dwRemoteAddr;   
        
public int dwRemotePort;   
    }
   
  
    [StructLayout(LayoutKind.Sequential)]   
    
public class MIB_TCPTABLE   
    
{   
        
public int dwNumEntries;   
        
public MIB_TCPROW[] table;   
    }
   
  
    [DllImport(
"Iphlpapi.dll")]   
    
static extern int GetTcpTable(IntPtr pTcpTable, ref int pdwSize, bool bOrder);   
  
    [DllImport(
"Iphlpapi.dll")]   
    
static extern int SendARP(Int32 DestIP, Int32 SrcIP, ref Int64 MacAddr, ref Int32 PhyAddrLen);   
  
    [DllImport(
"Ws2_32.dll")]   
    
static extern Int32 inet_addr(string ipaddr);   
  
    [DllImport(
"Ws2_32.dll")]   
    
static extern ushort ntohs(ushort netshort);   
  
    
//SendArp獲取MAC地址   
    public static string GetMacAddress(string macip)   
    
{   
        StringBuilder strReturn 
= new StringBuilder();   
        
try  
        
{   
            Int32 remote 
= inet_addr(macip);   
  
            Int64 macinfo 
= new Int64();   
            Int32 length 
= 6;   
            SendARP(remote, 
0ref macinfo, ref length);   
  
            
string temp = System.Convert.ToString(macinfo, 16).PadLeft(12'0').ToUpper();   
  
            
int x = 12;   
            
for (int i = 0; i < 6; i++)   
            
{   
                
if (i == 5{ strReturn.Append(temp.Substring(x - 22)); }   
                
else { strReturn.Append(temp.Substring(x - 22+ ":"); }   
                x 
-= 2;   
            }
   
  
            
return strReturn.ToString();   
        }
   
        
catch  
        
{   
            
return string.Empty;   
        }
   
    }
   
  
    
public static bool IsHostAlive(string strHostIP)   
    
{   
        
string strHostMac = GetMacAddress(strHostIP);   
        
return !string.IsNullOrEmpty(strHostMac);   
    }
   
  
    
public static MIB_TCPTABLE GetTcpTableInfo()   
    
{   
        
//聲明一個指針準備接受Tcp連接信息   
        IntPtr hTcpTableData = IntPtr.Zero;   
  
        
//聲明hTcpTableData指針所指向的內存緩沖區大小   
        int iBufferSize = 0;   
  
        
//聲明MIB_TCPTABLE對象,作為返回值   
        MIB_TCPTABLE tcpTable = new MIB_TCPTABLE();   
           
        
//聲明一個List對象來臨時存放MIB_TCPROW對象   
        List<MIB_TCPROW> lstTcpRows = new List<MIB_TCPROW>();   
           
        
//調用API來獲得真正的緩沖區大小,iBufferSize默認為0,   
        
//這時調用API GetTcpTable會觸發一個異常ERROR_INSUFFICIENT_BUFFER   
        
//通過這個異常系統會把真正的緩沖長度返回   
        GetTcpTable(hTcpTableData, ref iBufferSize, false);   
  
        
//為托管指針在堆上分配內存   
        hTcpTableData = Marshal.AllocHGlobal(iBufferSize);   
  
        
//求得MIB_TCPROW對象的內存字節數   
        int iTcpRowLen = Marshal.SizeOf(typeof(MIB_TCPROW));   
  
        
//根據上面得到的緩沖區大小來推算MIB_TCPTABLE里的MIB_TCPROW數組長度   
        
//下面用緩沖長度-sizeof(int)也就是去掉MIB_TCPTABLE里的成員dwNumEntries所占用的內存字節數   
        int aryTcpRowLength = (int)Math.Ceiling((double)(iBufferSize - sizeof(int)) / iTcpRowLen);   
  
        
//重新取得TcpTable的數據   
        GetTcpTable(hTcpTableData, ref iBufferSize, false);   
  
        
//下面是關鍵,由于MIB_TCPTABLE里的成員有一個是數組,而這個數組長度起初我們是不能確定的   
        
//所以這里我們只能根據分配的指針來進行一些運算來推算出我們所要的數據   
        for (int i = 0; i < aryTcpRowLength; i++)   
        
{   
            
//hTcpTableData是指向MIB_TCPTABLE緩沖區的內存起始區域,由于其成員數據在內存中是順序排列   
            
//所以我們可以推斷hTcpTableData+4(也就是sizeof(dwNumEntries)的長度)后就是MIB_TCPROW數組的第一個元素   
            IntPtr hTempTableRow = new IntPtr(hTcpTableData.ToInt32() + 4 + i * iTcpRowLen);   
            MIB_TCPROW tcpRow 
= new MIB_TCPROW();   
            tcpRow.dwLocalAddr 
= 0;   
            tcpRow.dwLocalPort 
= 0;   
            tcpRow.dwRemoteAddr 
= 0;   
            tcpRow.dwRemotePort 
= 0;   
            tcpRow.dwState 
= 0;   
  
            
//把指針數據拷貝到我們的結構對象里。   
            Marshal.PtrToStructure(hTempTableRow, tcpRow);   
            lstTcpRows.Add(tcpRow);   
        }
   
  
        tcpTable.dwNumEntries 
= lstTcpRows.Count;   
        tcpTable.table 
= new MIB_TCPROW[lstTcpRows.Count];   
        lstTcpRows.CopyTo(tcpTable.table);   
        
return tcpTable;   
    }
   
  
    
public static string GetIpAddress(long ipAddrs)   
    
{   
        
try  
        
{   
            System.Net.IPAddress ipAddress 
= new System.Net.IPAddress(ipAddrs);   
            
return ipAddress.ToString();   
        }
   
        
catch return ipAddrs.ToString(); }   
           
    }
   
  
    
public static ushort GetTcpPort(int tcpPort)   
    
{   
        
return ntohs((ushort)tcpPort);   
    }
   
  
    
public static bool IsPortBusy(int port)   
    
{   
        MIB_TCPTABLE tcpTableData 
= GetTcpTableInfo();   
        
return false;   
    }
   
}
  


下面我再把調用的方式順便寫一下

private void button1_Click(object sender, EventArgs e)   
{   
    NativeFunc.MIB_TCPTABLE tcpTableData 
= new NativeFunc.MIB_TCPTABLE();   
    tcpTableData 
= NativeFunc.GetTcpTableInfo();   
    
for (int i = 0; i < tcpTableData.dwNumEntries; i++)   
    
{   
        
this.richTextBox1.AppendText(string.Format("{0}:{1}-->>{2}:{3}\n",   
            NativeFunc.GetIpAddress(tcpTableData.table[i].dwLocalAddr),   
            NativeFunc.GetTcpPort(tcpTableData.table[i].dwLocalPort).ToString(),   
            NativeFunc.GetIpAddress(tcpTableData.table[i].dwRemoteAddr),   
            NativeFunc.GetTcpPort(tcpTableData.table[i].dwRemotePort).ToString()));   
    }
   
}
代碼下載

也可以使用cmd命令,Netstat
具體參考:
http://www.cnblogs.com/honour/archive/2008/08/04/1260206.html
posted on 2010-06-13 17:12 漂漂 閱讀(1700) 評論(0)  編輯 收藏 引用 所屬分類: c#開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线中文字幕日韩| 99re8这里有精品热视频免费| 久久久精品国产一区二区三区| 亚洲精品免费网站| 新狼窝色av性久久久久久| 欧美黄色日本| 欧美日韩精品一区视频| 在线电影国产精品| 欧美sm视频| 久久综合久久美利坚合众国| 最近中文字幕日韩精品 | 国产一区二区福利| 国产日韩精品一区二区浪潮av| 国产女精品视频网站免费| 韩国av一区二区三区| 最新国产乱人伦偷精品免费网站| 亚洲激情影院| 欧美一区不卡| 欧美国产日本韩| 亚洲网站视频福利| 久久久精品网| 欧美日韩国产麻豆| 韩国精品主播一区二区在线观看| 亚洲美女尤物影院| 欧美一级日韩一级| 亚洲黄色一区二区三区| 欧美亚洲一区二区在线| 欧美激情第1页| 国产综合久久| 亚洲一区二区三区乱码aⅴ| 国产精品久久久久国产精品日日 | 亚洲欧美精品在线| 麻豆免费精品视频| 国产日韩欧美精品| 一区二区三区.www| 欧美高清自拍一区| 欧美一区激情视频在线观看| 欧美久久久久久| 狠狠综合久久| 亚洲欧美日韩国产中文在线| 亚洲国产女人aaa毛片在线| 亚洲在线免费观看| 欧美日韩一区成人| 亚洲精品日韩在线| 欧美99久久| 久久国产精品久久久| 国产精品地址| 亚洲视频免费看| 亚洲人妖在线| 欧美激情精品久久久| 亚洲成人中文| 免播放器亚洲一区| 欧美亚洲综合在线| 欧美激情精品久久久久久蜜臀| 国产精品日韩欧美一区| 另类av导航| 亚洲人人精品| 欧美主播一区二区三区| 亚洲第一中文字幕| 亚洲高清在线视频| 欧美日本亚洲韩国国产| 亚洲一区二区三区色| 亚洲国内精品| 一区二区三区成人精品| 久久精品盗摄| 国内成人自拍视频| 亚洲自拍偷拍视频| 欧美午夜宅男影院| 亚洲国产成人tv| 国产精品久久久久久模特| 亚洲第一页在线| 日韩午夜免费视频| 亚洲第一级黄色片| 国产精品一二三四| 日韩网站在线观看| 在线亚洲自拍| 亚洲免费高清| 欧美va天堂在线| 久久国产免费| 久久亚裔精品欧美| 国产精品一区一区三区| 欧美资源在线观看| 国产精品老牛| 欧美精品激情| 一二三区精品福利视频| 国产亚洲欧美激情| 亚洲国产一区二区三区高清| 一区二区三区回区在观看免费视频| 亚洲三级电影在线观看| 亚洲影院一区| 亚洲日本中文字幕区| 宅男在线国产精品| 欧美国产日韩xxxxx| 欧美大片免费| 亚洲欧美一区二区原创| 欧美在线三区| 日韩视频一区二区三区在线播放免费观看| 亚洲视频在线看| 欧美精品v日韩精品v韩国精品v | 日韩视频免费观看高清在线视频| 亚洲精品免费在线| 亚洲电影一级黄| 麻豆成人综合网| 午夜国产不卡在线观看视频| 欧美日韩中文字幕精品| 欧美亚洲免费高清在线观看| 久久精品国产清自在天天线 | 好看不卡的中文字幕| 欧美不卡福利| 国产精品美女www爽爽爽视频| 免费成人小视频| 国产精品国产三级国产专播品爱网 | 久久青草久久| 久久亚洲国产精品日日av夜夜| 国产伦精品一区二区三区视频黑人 | 亚洲国产精品专区久久| 亚洲麻豆av| 亚洲精品欧美在线| 一区二区三区日韩在线观看| 久久精品久久99精品久久| 日韩亚洲欧美成人一区| 欧美人与禽性xxxxx杂性| 亚洲精品久久久久久久久| 亚洲国产一区二区三区青草影视 | 亚洲第一二三四五区| 国产精品影视天天线| 中文在线不卡| 欧美精品videossex性护士| 欧美电影免费观看高清完整版| 国产欧美欧美| 一区二区在线免费观看| 久久99伊人| 久久人人爽人人爽| 韩国免费一区| 久久亚洲精品一区二区| 亚洲九九精品| 亚洲国产欧美在线| 免费观看成人www动漫视频| 亚洲视频导航| 亚洲国产日韩欧美综合久久| 国产热re99久久6国产精品| 国产精品vvv| 欧美性猛交一区二区三区精品| 欧美一区二区三区久久精品| 久久九九久久九九| 欧美多人爱爱视频网站| 免费在线成人| 亚洲高清不卡av| 免费成人美女女| 亚洲电影欧美电影有声小说| 亚洲高清网站| 亚洲精品在线三区| 亚洲一区在线免费观看| 亚洲精品之草原avav久久| 一区二区三区产品免费精品久久75 | 国产精品激情偷乱一区二区∴| 亚洲日韩第九十九页| 999在线观看精品免费不卡网站| 欧美日本一道本在线视频| 在线一区二区日韩| 欧美高清在线一区| 亚洲一区久久久| 欧美日韩国产欧美日美国产精品| 亚洲黄色成人网| 亚洲欧美日韩精品久久亚洲区| 欧美国产综合一区二区| 久久久91精品国产| 欧美视频一区在线| 老司机午夜免费精品视频| 国产精品国产三级国产a| 国产精品99久久久久久白浆小说 | 亚洲综合日韩在线| 性做久久久久久免费观看欧美| 欧美一级午夜免费电影| 亚洲高清不卡一区| 久久这里只有精品视频首页| 米奇777在线欧美播放| 国产精品每日更新在线播放网址| 欧美淫片网站| 亚洲欧洲在线观看| 久久aⅴ国产紧身牛仔裤| 亚洲国产婷婷香蕉久久久久久99| 欧美精品 日韩| 欧美一区二区视频网站| 亚洲精品久久久一区二区三区| 久久美女性网| 午夜精品福利在线观看| 91久久久亚洲精品| 国产亚洲欧美日韩美女| 欧美视频中文字幕在线| 久久综合狠狠综合久久激情| 亚洲永久免费视频| 99精品久久久| 亚洲日本乱码在线观看| 久久久亚洲国产天美传媒修理工| 亚洲一区二区三区免费观看 | 一本色道久久加勒比精品| 国内成人自拍视频| 国产亚洲美州欧州综合国| 国产精品国产福利国产秒拍|