📄 subject_44875.htm
字号:
<p>
序号:44875 发表者:忧河 发表日期:2003-06-24 12:25:08
<br>主题:如何获取IP地址!
<br>内容:我现在要写一个通信程序,简单UDP报文发送,知道接收方得域名和端口号,由于对方IP不断变化得,所以我每次发送UDP报文时,必须通过域名获得IP地址,然后在发送,不知道这个如何能从已知得域名获得对应得ip地址?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Fang 回复日期:2003-06-24 13:00:41
<br>内容:gethostbyname
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:忧河 回复日期:2003-06-24 13:51:04
<br>内容:能不能请楼上得详细说明一下!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Fang 回复日期:2003-06-24 13:59:13
<br>内容:详细的看msdn,不能养成依赖性,自己的事情自己做。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:忧河 回复日期:2003-06-24 14:01:44
<br>内容:嗯,多谢指点!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Justin Le 回复日期:2003-06-24 14:02:11
<br>内容:<BR>struct hostent * gethostbyname( const char *hostname); <BR>函数 gethostbyname 查询指定的域名地址对应的 IP 地址,返回一个 hostent结构的指针,如果不成功返回 NULL。 <BR><BR>hostent类型的结构定义 <BR> struct hostent { char *h_name ; //主机的正式名称 <BR> char * *h_aliases ; //别名列表 <BR> int h_addrtype ; //主机地址类型:AF_XXX <BR> lnt H_length; //主机地址长度:4 字节(32 位) <BR> char * *h_addr_list;//主机 IP 地址列表 } <BR>具体参看MSDN<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Justin Le 回复日期:2003-06-24 14:07:12
<br>内容:如何获取局域网上计算机名及它们的IP地址<BR>l 连接ws2_32.lib和 mpr.lib库<BR>l #include winsock2.h<BR>CString strTemp;<BR>struct hostent *host;<BR><BR>struct in_addr *ptr; // 检索IP地址 <BR><BR>DWORD dwScope = RESOURCE_CONTEXT;<BR>NETRESOURCE *NetResource = NULL;<BR>HANDLE hEnum;<BR>WNetOpenEnum( dwScope, NULL, NULL, <BR> NULL, &hEnum );<BR><BR>WSADATA wsaData;<BR>WSAStartup(MAKEWORD(1,1),&wsaData);<BR><BR>if ( hEnum )<BR>{<BR> DWORD Count = 0xFFFFFFFF;<BR> DWORD BufferSize = 2048;<BR> LPVOID Buffer = new char[2048];<BR> WNetEnumResource( hEnum, &Count, <BR> Buffer, &BufferSize );<BR> NetResource = (NETRESOURCE*)Buffer;<BR><BR> char szHostName[200];<BR> unsigned int i;<BR><BR> for ( i = 0; <BR> i < BufferSize/sizeof(NETRESOURCE); <BR> i++, NetResource++ )<BR> {<BR> if ( NetResource->dwUsage == <BR> RESOURCEUSAGE_CONTAINER && <BR> NetResource->dwType == <BR> RESOURCETYPE_ANY )<BR> {<BR> if ( NetResource->lpRemoteName )<BR> {<BR> CString strFullName = <BR> NetResource->lpRemoteName;<BR> if ( 0 == <BR> strFullName.Left(2).Compare("\\\\") ) <BR> strFullName = <BR> strFullName.Right(<BR> strFullName.GetLength()-2);<BR><BR> gethostname( szHostName, <BR> strlen( szHostName ) );<BR> host = gethostbyname(strFullName);<BR><BR> if(host == NULL) continue; <BR> ptr = (struct in_addr *) <BR> host->h_addr_list[0]; <BR><BR> // =. 分隔开IP:211.40.35.76. <BR> int a = ptr->S_un.S_un_b.s_b1; // 211 <BR> int b = ptr->S_un.S_un_b.s_b2; // 40<BR> int c = ptr->S_un.S_un_b.s_b3; // 35<BR> int d = ptr->S_un.S_un_b.s_b4; // 76<BR><BR> strTemp.Format("%s --> %d.%d.%d.%d",<BR> strFullName,a,b,c,d);<BR> AfxMessageBox(strTemp);<BR> }<BR> }<BR> }<BR><BR> delete Buffer;<BR> WNetCloseEnum( hEnum ); <BR>}<BR><BR>WSACleanup();<BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:忧河 回复日期:2003-06-24 15:05:29
<br>内容:谢谢Justin详细得讲解!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:adam&amp;ancy 回复日期:2003-06-26 13:52:57
<br>内容:厉害~~<BR>MSDN是什么来得?可以说下不?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:数字金刚 回复日期:2003-06-28 17:56:24
<br>内容:MSDN是Visual Studio相关联的微软开发联机文档,没有它,我干不了活
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -