社区
分析与设计
帖子详情
请教一些关于LAN探测的原理.
hm7921936
2009-02-20 10:20:00
网上那些LAN探测QQ之类的软件 的原理是什么?
基于哪些?麻烦哪位大神指一下方向,或者告诉我要看些什么书,哪些方面的书.
小弟只对TCP/IP有一点浅薄的了解.
...全文
50
4
打赏
收藏
请教一些关于LAN探测的原理.
网上那些LAN探测QQ之类的软件 的原理是什么? 基于哪些?麻烦哪位大神指一下方向,或者告诉我要看些什么书,哪些方面的书. 小弟只对TCP/IP有一点浅薄的了解.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weir55
2009-02-22
打赏
举报
回复
在发一个
#include <winsock2.h>
#include <windows.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib,"ws2_32.lib")
#define MAX_HOSTNAME_LAN 255
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
#define MAX_ADDR_LEN 16
struct ipheader {
unsigned char ip_hl:4, ip_v:4; /* this means that each member is 4 bits */
unsigned char ip_tos;
unsigned short int ip_len;
unsigned short int ip_id;
unsigned short int ip_off;
unsigned char ip_ttl;
unsigned char ip_p;
unsigned short int ip_sum;
unsigned int ip_src;
unsigned int ip_dst;
}; /* total ip header length: 20 bytes (=160 bits) */
typedef struct udphdr {
unsigned short sport;
unsigned short dport;
unsigned short len;
unsigned short cksum;
}UDP_HDR;
void main()
{
SOCKET sock;
WSADATA wsd;
DWORD dwBytesRet;
unsigned int optval = 1;
unsigned char *dataudp,*pUdpData;
int QQ,iUdpDataLen;
SOCKADDR_IN sa,saSource, saDest;
struct hostent FAR * pHostent;
char FAR name[MAX_HOSTNAME_LAN];
char szSourceIP[MAX_ADDR_LEN],RecvBuf[65535] = {0};
struct udphdr *pUdpheader;
struct ipheader *pIpheader;
WSAStartup(MAKEWORD(2,1),&wsd);
if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP))==SOCKET_ERROR)exit(1);
gethostname(name, MAX_HOSTNAME_LAN);
pHostent = gethostbyname(name);
sa.sin_family = AF_INET;
sa.sin_port = htons(6000);
memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);
bind(sock, (SOCKADDR *)&sa, sizeof(sa));
if ((WSAGetLastError())==10013)exit(1);
WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);
pIpheader = (struct ipheader *)RecvBuf;
pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ));
printf("QQ sniffer V1.1 code powerd by cooldiyer\r\n");
while (1)
{
memset(RecvBuf, 0, sizeof(RecvBuf));
recv(sock, RecvBuf, sizeof(RecvBuf), 0);
saSource.sin_addr.s_addr = pIpheader->ip_src;
strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);
iUdpDataLen =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr)));
if((pIpheader->ip_p)==IPPROTO_UDP&&iUdpDataLen!=0)
{
pUdpData=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr);
iUdpDataLen=ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr));
if(ntohs(pUdpheader->dport)==8000)
if(iUdpDataLen%4==0 && iUdpDataLen>0)
if(pUdpData[0]==0x02 && pUdpData[3]==0x00 && pUdpData[iUdpDataLen-1]==0x03)
{
QQ = (pUdpData[7]&0xff);
QQ = (QQ<<8) + (pUdpData[8]&0xff);
QQ = (QQ<<8) + (pUdpData[9]&0xff);
QQ = (QQ<<8) + (pUdpData[10]&0xff);
printf("IP:%s QQ:%d\r",szSourceIP,QQ);
}
}
}
}
weir55
2009-02-22
打赏
举报
回复
你可以了解下libpcap
chenyijiu
2009-02-21
打赏
举报
回复
同一lan内计算机的网卡(或者网关更好)能够截取同一网段的数据包,如果知道qq传输的数据包的格式
(主要是加密了)你可以测试下,尽管加密了,应该还是有特征可寻的,更据lan内的哪些机器发qq特征的数据包来
判断是否开qq,可以抓些心跳数据包之类的
king19840811
2009-02-21
打赏
举报
回复
mark
CCNA_CCNP 思科网络认证 《 广域网 帧中继和永久虚电路 》
# 广域网与局域网的区别 局域网(Local Area Network),简称
LAN
,是指在某一区域内由多台计算机互联成的计算机组。一般企业或机构自己购买设备,将物理位置较近的办公区的计算机使用网络设备连接起来,一般覆盖...
【大杂烩】杂7杂8的东西
下午开会了解关于Freebox的问题,测试,发现原来的版本RE端可以ping通RootAP,
LAN
端PCping不通RootAP,升级修改的软件,发现两者都不通,我日个悲剧了。 2013.10.28 上午测试了wa730re,跟踪extender...
总结]关于守护进程解释文章
[总结]关于守护进程解释文章 这里三篇文章涵盖了守护进程的功能和一些解释,可以为准备优化系统启动速度的朋友提供一些建议。第一篇中还有设置硬盘等等的信息资料。欢迎大家阅读。摘自linuxsir.org定制自己的Linux...
[精彩] vmware 网络配置实例二 windows xp host + linux guest
我找了VMware的帮助文件,都是概念,
原理
我还是有点不明不白 我以为NAT是最简单的了, 有篇文章还写要在win上要设置路由(或安装代理软件)? 不知大家有没有兴趣试试, 我现在内存不大,用VM上的LINUX,速度挺...
PIX ASA 资料
进行静态防火墙过滤,同时再使用一些其他的工具来防护其他威胁的办法。他们更希望采用一台“集所有功能于一身”的设备——或是采用一台UTM(统一威胁管理)设备。 而ASA恰好针对这些不同类型的***提供了防护。它甚至...
分析与设计
13,190
社区成员
5,759
社区内容
发帖
与我相关
我的任务
分析与设计
.NET技术 分析与设计
复制链接
扫一扫
分享
社区描述
.NET技术 分析与设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章