我想做个局域网通信的程序,程序启动时要能自动检测所有的网上邻居放入下拉列表框中,怎么实现?还有能不能同时发给内部网和外部网的机子,另外如果只知道对方的机器名,怎么获取其ip地址,怎样得到他的操作系统类型(怎样把信息发给Win98和Win2K?)—————————————————————————————————
┏━★━━◆━━★━┓
♂欢|◢CSDN◣|使♂ ▲自由保存帖子,浏览,关注检测
┃迎|◥论坛助手◤|用┃ ▲完善的CSDN客户端工具
┗━☆━━◇━━━☆┛ ▲自动添加签名......让你更快,更爽,更方便地上CSDN...
http://www.csdn.net/expert/topic/573/573604.xml
http://www.chinaok.net/csdn/csdn.zip
┏━★━━◆━━★━┓
♂欢|◢CSDN◣|使♂ ▲自由保存帖子,浏览,关注检测
┃迎|◥论坛助手◤|用┃ ▲完善的CSDN客户端工具
┗━☆━━◇━━━☆┛ ▲自动添加签名......让你更快,更爽,更方便地上CSDN...
http://www.csdn.net/expert/topic/573/573604.xml
http://www.chinaok.net/csdn/csdn.zip
用以下代码得到各机IP
CString GetIp(CString strName)
{
WORD wVersionRequested;
WSADATA wsaData;
CString ip;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 2, 0 ); if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
{
if((hostinfo = gethostbyname(m_strName)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
WSACleanup( );
}
return ip;
}
在你的程序初使化中枚举所有你局域网中的机器名,如有一机器叫sqa 则调用GetIp(sqa)可得到相应的IP地址, 如果返回值为空,则表示此机器未开机或是未能接入局域网 然后只要有返回值的, 就在列表框的构造中相应的AddString一下就成了
98下的, 另做吧, 得到版本信息得调用一些api吧, 我没用过, 呵呵, 自己查查,:)