2010-01-20 65 views
1

是否有顯示動態生成一個文本框的系統的IP地址和端口號的方式,將文本框中的IP地址和端口號???如何顯示應生成動態

我希望系統根據機器把IP地址轉換爲文本框。

亞洲時報Siddharth

回答

1

您的系統沒有一個端口號。端口號是一種軟件概念,用於區分不同的IP或UDP應用程序,這些應用程序可能需要監聽IP地址上的連接。

而且,它很可能有不止一個IP地址。事實上,如果您計算環回地址(127.0.0.1),則您的系統幾乎總是有兩個。即使你現在還沒有很多消費電腦有多個以太網接口,

你沒有說你使用的是Win32,所以我不知道它對你有用,但是這是我寫的一些代碼,它將所有本地IP地址(環回除外)放入一個MFC CComboBox中。這比今天我想看到的還要多一點C-ISH,但現在就是這樣。

size_t const Max_Expected_Addresses = 20; // Something rediculous 
unsigned long IPADDRTBL_Size = sizeof(DWORD) + sizeof(MIB_IPADDRROW) * Max_Expected_Addresses; 
PMIB_IPADDRTABLE IP_Address_Table = (PMIB_IPADDRTABLE) malloc (IPADDRTBL_Size); 
if (GetIpAddrTable (IP_Address_Table, &IPADDRTBL_Size, TRUE) == NO_ERROR) { 
    for (DWORD i = 0; i < IP_Address_Table->dwNumEntries; i++) { 
     // Skip the loopback. 
     if (IP_Address_Table->table[i].dwAddr == 0x0100007f) continue; 

     if (m_IP_Address == "") m_IP_Address = String_Address(IP_Address_Table->table[i].dwAddr); 
     m_IP_Address_List.AddString (String_Address(IP_Address_Table->table[i].dwAddr)); 
    }; 
} 

m_IP_Address_List是定義爲得到由這個片段填充在CComboBox的MFC控制。 m_IP_Address是一個連接到MFC文本框控件(IIRC)的CString,我用它來存儲當前選擇的(或首次在啓動時找到的)IP地址。

+0

感謝您的答覆,哥們,我使用贏得2003服務器以及如何將I B能夠動態顯示IP地址的文本框? VBscript或C++中是否有任何自定義操作? – user218594 2010-01-20 13:55:46

+0

他的wix標籤暗示他在使用窗戶,但wix並不適合在最好的時候隱隱發作。完成他想要的事情並不是微不足道的。 – grenade 2010-01-20 13:56:32

+0

你有這個解決方案..? – user218594 2010-01-20 14:03:11

1

既然你提到一個文本框,我只能假設,你所談論的Web瀏覽器,並在你所談論的HTTP的時候這種情況下,99.9%,然後99.999的時間TCP連接%。這意味着你的連接將有一個由source ip:port和destination ip:port組成的4元組。在大多數情況下,目的地(客戶端)的端口號是相當標準的(80)。

然後你進入NAT之類的很常見的問題,所以我再次想你需要澄清你想要什麼類型的IP地址。可公開路由的IP地址在服務器端獲得,局域網地址將從本地主機獲得。

對於更有趣的情況(可公開路由的ip),我只需使用服務器端腳本(python,PHP,C等)來讀取傳入的IP地址,然後使用一個小的ajax來設置值的文本框。我爲一個項目做了類似的事情,並且工作得很好。我們的客戶端程序是寫在Python和C,但是這會給你一個想法......

# Returns the client's public IP address (past any NATs) 
def get_public_ip(): 
     return urllib.urlopen('http://ddih.org/ip.php').read().strip() 

我認爲像設置從該網頁內的HTML ......

希望這有助於。