2010-01-20 69 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 ......

希望这有助于。