Foxmail★Blog

——朱俊Blog

用户操作
[即时聊天] [发私信] [加为好友]
朱俊ID:foxmail
134289次访问,排名620好友0人,关注者1
foxmail的文章
原创 100 篇
翻译 0 篇
转载 10 篇
评论 235 篇
最近评论
vvukqr:WoW Gold
ym:好文才,对我就像醍醐灌顶
阿豪:你的墙纸设置方法有问题,无法设置jpg和gif,只能设置bmp。如果设置图片为jpg和gif墙纸没有任何变化。如果你感兴趣,我可以把代码发给你看看,看看到底是你的方法有问题还是我做得不对。
nqh@exchange.ricsson.com
xiaopianzi:看到你对svm有研究,所以请问svmlight多分类预测时,我连网页上提供的exampel效果都不好,怎么回事?参数的选定有没有窍门?还有libsvm我用它作多分类预测,总是报错!怎么回事?请指教!!!
egxsun:要是加flash,怎么改这段:if (filmURL != null) {
filmstring = '<object classid=""clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6"" id=""WindowsMediaPlayer1"">'; ……
文章分类
收藏
相册
Funny
文章用图
朱俊
我的主页
MSN Space
中国人工智能网
恋雪
步天软件
留言
连连看
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 如何扫描网络邻居内的所有IP和用户名收藏

新一篇: 程序控制桌面切换 | 旧一篇: 英雄狂想曲

如何扫描网络邻居内的所有IP和用户名

#include "Winsock2.h"
#include "afxtempl.h"
#include "Winnetwk.h"

加入lib链接Project-》setting-》link-》object\libary modules 中
加入Ws2_32.lib Mpr.lib

         CList<CString,CString&> m_list;
 
 m_list.RemoveAll();

 CString strTemp; 
 struct hostent *host;
 struct in_addr *ptr; // 获得IP地址  

 
 DWORD dwScope = RESOURCE_CONTEXT;
 NETRESOURCE *NetResource = NULL;
 HANDLE hEnum;
 WNetOpenEnum( dwScope, NULL, NULL, NULL, &hEnum );

 WSADATA wsaData;
 //开始枚举网络资源
 WSAStartup(MAKEWORD(1,1),&wsaData);

 if ( hEnum )     //如果句柄有效
 {
  DWORD Count = 0xFFFFFFFF;
  DWORD BufferSize = 2048;
  LPVOID Buffer = new char[2048];
  // 调用WSAStartup后调用WNetEnumResource做进一步的枚举工作
  WNetEnumResource( hEnum, &Count, Buffer, &BufferSize );
  NetResource = (NETRESOURCE*)Buffer;

  char szHostName[200];

  for ( unsigned int i = 0; i < BufferSize/sizeof(NETRESOURCE); i++, NetResource++ )  
  {
   if ( NetResource->dwUsage == RESOURCEUSAGE_CONTAINER && NetResource->dwType == RESOURCETYPE_ANY )    {
    if ( NetResource->lpRemoteName )
    {
     CString strFullName = NetResource->lpRemoteName;
     if ( 0 == strFullName.Left(2).Compare("\\\\") )            strFullName = strFullName.Right(strFullName.GetLength()-2);
                   
     //获得主机名
     gethostname( szHostName, strlen( szHostName ) );
     //由主机名获得跟它对应的主机信息
     host = gethostbyname(strFullName);
     if(host == NULL) continue;
     ptr = (struct in_addr *) host->h_addr_list[0];     
     
     // 提取IP地址信息,地址形式如下: 211.40.35.76     
     int a = ptr->S_un.S_un_b.s_b1;  // 211    
     int b = ptr->S_un.S_un_b.s_b2;  // 40
     int c = ptr->S_un.S_un_b.s_b3;  // 35
     int d = ptr->S_un.S_un_b.s_b4;  // 76

     strTemp.Format("%s -->  %d.%d.%d.%d",strFullName,a,b,c,d);
     // 加入到链表中
     m_list.AddTail(strTemp);
    }
   }
  }
  delete Buffer;
  // 结束枚举工作
  WNetCloseEnum( hEnum ); 
 }

 // 卸载Winsock.dll
 WSACleanup();

 

 

列出本机IP地址和名字
    CString m_strIPAddress;
    WSADATA wsaData;
    int iRet = WSAStartup(MAKEWORD(0x02, 0x02), &wsaData);
    if (iRet != 0)
    {
        TRACE("初始化winsock动态库出错!");
        m_strIPAddress = "";
        return;
     }

      struct in_addr localaddr;
      struct hostent *hp=NULL;
      char hostname[50];
      gethostname(hostname,49);//主机名

      hp=gethostbyname(hostname);//主机信息
      memcpy(&localaddr,hp->h_addr,hp->h_length);//地址

      m_strIPAddress = inet_ntoa(localaddr);//变成char *
      WSACleanup();

发表于 @ 2004年06月25日 19:08:00|评论(loading...)|编辑

新一篇: 程序控制桌面切换 | 旧一篇: 英雄狂想曲

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © Foxmail