SYN扫描源代码(优选.)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改

下面是一个网络编程的实例, Syn扫描器代码,可以作为参考.

基本可以看为是 ping命令的实现

//getallIP.cpp

#include

#include

#pragma comment(lib,"ws2_32.lib")

int main()

{

////////////////

// 初始化 Windows sockets API.

//

WORD wVersionRequested = MAKEWORD(2, 2);

WSADATA wsaData;

if (WSAStartup(wVersionRequested, &wsaData)) {

printf("WSAStartup failed %s\n", WSAGetLastError());

return 0;

}

//////////////////

// 获得主机名.

//

char hostname[256];

int res = gethostname(hostname, sizeof(hostname));

if (res != 0) {

printf("Error: %u\n", WSAGetLastError());

return 0;

}

printf("hostname=%s\n", hostname);

////////////////

// 根据主机名获取主机信息.

//

hostent* pHostent = gethostbyname(hostname);

if (pHostent==NULL) {

printf("Error: %u\n", WSAGetLastError());

return 0;

}

//////////////////

// 解析返回的hostent信息.

//

hostent& he = *pHostent;

printf("name=%s\naliases=%s\naddrtype=%d\nlength=%d\n",

he.h_name, he.h_aliases, he.h_addrtype, he.h_length);

sockaddr_in sa;

//根据 he.h_addr_list[nAdapter]是否为空来获取所有IP地址

for (int nAdapter=0; he.h_addr_list[nAdapter]; nAdapter++) {

memcpy ( &sa.sin_addr.s_addr, he.h_addr_list[nAdapter],he.h_length);

// 输出机器的IP地址.

printf("Address [%d%]: %s\n",nAdapter, inet_ntoa(sa.sin_addr)); // 显示地址串

//////////////////

// 终止 Windows sockets API

//

WSACleanup();

return 0;

}

//mstcpip.h

//头文件

// Copyright (C) Microsoft Corporation, 1996-1999 #if _MSC_VER > 1000

#pragma once

#endif

/* Argument structure for SIO_KEEPALIVE_VALS */

struct tcp_keepalive {

u_long onoff;

u_long keepalivetime;

u_long keepaliveinterval;

// New WSAIoctl Options

#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)

#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)

#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3) #define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)

#define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5) #define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6)

#define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7) #define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8)

#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)

#define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10) #define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11)

//主程序

//synscan.cpp

#include

相关文档
最新文档