cmd 端口扫描_c实现电脑可用端口扫描

hacker|
218

求扫描指定IP的端口的扫描器?

有,阿D工具包,不过那个会被很多杀毒软件报告病毒(其实杀毒软件把黑客软件都认为是病毒),但是不会对电脑造成危害

如何用C程序获取本地可用端口

可以打开USB接口上的设备,或者打开USB控制器,那涉及到windows的驱动访问。

一般访问设备使用CreateFile打开设备,然后使用ReadFile/WriteFile读写设备。

比如:

HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...); //指定以异步方式打开

BYTE bBuffer[100];

OVERLAPPED o = { 0 };

o.Offset = 345;

BOOL bReadDone = ReadFile(hFile, bBuffer, 100, NULL, o); // bReadDone 指定I/O请求是不是以同步方式打开

DWORD dwError = GetLastError();

if (!bReadDone (dwError == ERROR_IO_PENDING)) { //异步方式打开

// The I/O is being performed asynchronously; wait for it to complete

WaitForSingleObject(hFile, INFINITE);

bReadDone = TRUE;

}

if (bReadDone) {

// o.Internal contains the I/O error

// o.InternalHigh contains the number of bytes transferred

// bBuffer contains the read data

} else {

// An error occurred; see dwError

}

linux下用C写的一个端口扫描器,想得到扫描主机的操作系统类型

nmap 命令行

zenmap 图形化界面

一般能扫描出主机的操作系统版本

如何扫描某一计算机开放的所有端口

在命令提示符中输入netstat -an可以扫描某一计算机开放的所有端口,具体步骤如下:

工具/材料:电脑

1、打开电脑,右键单击左下角开始,然后点击运行。

2、在运行的输入框里面输入cmd,然后点击确定。

3、在弹出的cmd.exe中输入netstat -an,然后敲击回车,这样就可以看到这个计算机所有开放的端口了。

如何扫描某一计算机开放的所有端口?

扫描某一计算机开放的所有端口可在windows系统输入-netstat -an即可。

一、打开端口的步骤:

1、首先,打开电脑的控制面板,然后在控制面板中找到防火墙。

2、在防火墙设置左边选择点击高级设置。

3、高级安全设置中,我们点击选择左边的入站规则。

4、在右侧栏选择点击新建规则。

5、规则类型选择端口类型。

6、选择tcp协议,特定端口,端口自己规定,比如4444。

7、何时应用规则,默认全选。

8、退出之后,我们就看到创建的入站规则,该端口允许。

二、端口分类:

1、硬件端口

CPU通过接口寄存器或特定电路与外设进行数据传送,这些寄存器或特定电路称之为端口。

其中硬件领域的端口又称接口,如:并行端口、串行端口等。

2、 *** 端口

在 *** 技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他 *** 设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。

3、软件端口

缓冲区。

100分求linux下C语言端口扫描代码

linux tcp udp 端口扫描源程序

#include sys/socket.h

#include netinet/in.h

#include arpa/inet.h

#include unistd.h

#include errno.h

#include netdb.h

#include stdio.h

#include string.h

#include netinet/ip_icmp.h

#include stdlib.h

#include signal.h

#include libxml/parser.h

#include libxml/tree.h

#define TRUE 1

#define FALSE 0

#define UDP "UDP"

#define TCP "TCP"

#define tcp "tcp"

#define udp "udp"

typedef struct _GsSockStru{

int fd;

int len;

struct sockaddr_in addr;

}GsSockStru;

static int tcptest( char ip[32], char port[20]);

static int udptest( char ip[32], char port[20]);

void sig_alrm( int signo );

static GsSockStru test_sock;

int

main( int argc, char** argv)

{

char string[64];

char port[20];

char pro[20];

char ip[32];

int res;

int i = 0;

int k = 0;

if( argc2 || argc2 )

{

printf("鍙傛暟涓嶆纭?-1\n");

return ( -1 );

}

strcpy( string, argv[1]);

while( *string )

{

if( string[i] == ':' )

break;

pro[k] = string[i];

k++;

i++;

}

pro[k] = '\0';

i++;

k = 0;

while( *string )

{

if( string[i] == ':')

break;

ip[k] = string[i];

k++;

i++;

}

ip[k] = '\0';

i++;

k=0;

while( *string )

{

if( string[i] == '\0')

break;

port[k] = string[i];

k++;

i++;

}

port[k] = '\0';

i++;

memset( test_sock, 0, sizeof( test_sock ) );

if ( ( strcmp( TCP, pro) != 0 ) ( strcmp( UDP, pro) != 0 ) ( strcmp( tcp, pro) != 0 ) ( strcmp( udp, pro) != 0 ))

{

printf ( "鍙傛暟涓嶆纭?锛?\n" );

return (-1);

}

if ( strcmp( TCP, pro) == 0 || strcmp( tcp, pro) == 0 )

res = tcptest( ip, port );

if ( strcmp( UDP, pro) == 0 || strcmp( udp, pro) == 0 )

res = udptest( ip, port );printf("%d\n",res);

return ( res );

}

int

tcptest( char ip[32], char port[20])

{

int res;

struct timeval tv;

test_sock.fd = socket( AF_INET, SOCK_STREAM, 0 );

if ( test_sock.fd 0 )

{

printf( "create socket failed -3 \n" );

return ( -3 );

}

memset( ( test_sock.addr ), 0, sizeof( test_sock.addr ) );

test_sock.addr.sin_family = AF_INET;

test_sock.addr.sin_port = htons( atoi( port ) );

inet_pton( AF_INET, ip, test_sock.addr.sin_addr );

test_sock.len = sizeof( struct sockaddr );

tv.tv_sec = 10;

tv.tv_usec = 0;

setsockopt( test_sock.fd, SOL_SOCKET, SO_RCVTIMEO,

(const char *)tv, sizeof( tv ) );

res = connect( test_sock.fd,

( struct sockaddr * )( ( test_sock.addr ) ),

test_sock.len );

if ( res 0 )

{

fprintf( stderr, "connect failed 0\n" );

close( test_sock.fd );

return FALSE;

}

close( test_sock.fd );

return TRUE;

}

int udptest( char ip[32], char port[20])

{

struct icmphdr *icmp_header;

struct sockaddr_in target_info;

int target_info_len;

fd_set read_fd;

int scan_port;

char recvbuf[5000];

struct sockaddr_in target_addr;

int icmp_socket;

int udp_socket;

struct timeval tv;

icmp_header = (struct icmphdr *)(recvbuf+sizeof(struct iphdr));

scan_port = atoi( port );

target_addr.sin_family = AF_INET;

inet_pton( AF_INET, ip, target_addr.sin_addr );

target_addr.sin_port = htons(scan_port);

if ((udp_socket=socket(AF_INET,SOCK_DGRAM,0))==-1)

{

printf("create socket failed -3\n");

return -3;

}

if ((icmp_socket=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP))==-1)

{

printf("Create raw socket failed -3\n");

return -3;

}

sendto(udp_socket,NULL,0,0,(void *)target_addr,sizeof(target_addr));

FD_ZERO(read_fd);

FD_SET(icmp_socket,read_fd);

tv.tv_sec = 1;

tv.tv_usec = 0;

select(FD_SETSIZE,read_fd,NULL,NULL,tv);

for (;;){

if (FD_ISSET(icmp_socket,read_fd))

{

target_info_len = sizeof(target_info);

recvfrom(icmp_socket,recvbuf,5000,0,

(struct sockaddr *)target_info,target_info_len);

if (target_info.sin_addr.s_addr == target_addr.sin_addr.s_addr

icmp_header-type == 3 icmp_header-code=12)

{

printf("Port %d : Close\n",scan_port);

return (0);

}

}

return (1) ;

}

}

0条大神的评论

发表评论