亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? udp_scan.c

?? 端口掃描源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
 /*  * udp-scan - determine available udp services  *   * Author: Wietse Venema.  */#include <sys/types.h>#include <sys/param.h>#include <sys/socket.h>#include <sys/time.h>#include <netinet/in_systm.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>#include <netinet/udp.h>#include <errno.h>#include <netdb.h>#include <stdio.h>#include <string.h>extern int errno;#ifndef __STDC__extern char *strerror();#endifextern char *optarg;extern int optind;#define offsetof(t,m)	(size_t)(&(((t *)0)->m))#ifndef FD_SET#include <sys/select.h>#endif#ifndef INADDR_ANY#define INADDR_ANY 0xffffffff#endif#include "lib.h"#define LOAD_LIMIT	100		/* default max nr of open sockets */#define AVG_MARGIN	10		/* safety margin */ /*  * In order to protect ourselves against dead hosts, we first probe UDP port  * 1. If we do not get an ICMP error (no listener or host unreachable) we  * assume this host is dead. If we do get an ICMP error, we have an estimate  * of the roundtrip time. The test port can be changed with the -p option.  */char   *test_port = "1";int     test_portno;#define YES     1#define NO      0int     verbose = 0;			/* default silent mode */int     open_file_limit;		/* max nr of open files */ /*  * We attempt to send as many probes per roundtrip time as network capacity  * permits. With UDP we must do our own retransmission and congestion  * handling.  */int     hard_limit = LOAD_LIMIT;	/* max nr of open sockets */int     soft_limit;			/* slowly-moving load limit */struct timeval now;			/* global time after select() */int     ports_busy;			/* number of open sockets */int     want_err = 0;			/* show reachable/unreachable */int     show_all = 0;			/* show all ports */ /*  * Information about ongoing probes is sorted by time of last transmission.  */struct port_info {    RING    ring;			/* round-robin linkage */    struct timeval last_probe;		/* time of last probe */    int     port;			/* port number */    int     pkts;			/* number of packets sent */};struct port_info *port_info = 0;RING    active_ports;			/* active sockets list head */RING    dead_ports;			/* dead sockets list head */struct port_info *find_port_info();	/* retrieve port info */ /*  * Performance statistics. These are used to update the transmission window  * size depending on transmission error rates.  */double  avg_irt = 0;			/* inter-reply arrival time */double  avg_rtt = 0;			/* round-trip time */double  avg_pkts = 1;			/* number of packets sent per reply */int     probes_sent = 0;		/* probes sent */int     probes_done = 0;		/* finished probes */int     replies;			/* number of good single probes */struct timeval last_reply;		/* time of last reply */int     send_sock;			/* send probes here */int     icmp_sock;			/* read replies here */fd_set  icmp_sock_mask;			/* select() read mask */static struct sockaddr_in dst; /*  * Helpers...  */#define time_since(t) (now.tv_sec - t.tv_sec + 1e-6 * (now.tv_usec - t.tv_usec))#define sock_age(sp) time_since(sp->last_probe)double  average();struct port_info *add_port();/* main - command-line interface */main(argc, argv)int     argc;char   *argv[];{    int     c;    struct protoent *pe;    char  **ports;    struct sockaddr_in src;    char   *src_port = 0;    progname = argv[0];    if (geteuid())	error("This program needs root privileges");    open_file_limit = open_limit();    while ((c = getopt(argc, argv, "al:p:SuUv")) != EOF) {	switch (c) {	case 'a':	    show_all = 1;	    break;	case 'l':	    if ((hard_limit = atoi(optarg)) <= 0)		usage("invalid load limit");	    break;	case 'p':	    test_port = optarg;	    break;	case 'S':	    src_port = optarg;	    break;	case 'u':	    want_err = EHOSTUNREACH;	    break;	case 'U':	    want_err = ~EHOSTUNREACH;	    break;	case 'v':	    verbose = 1;	    break;	default:	    usage((char *) 0);	    break;	}    }    argc -= (optind - 1);    argv += (optind - 1);    if (argc < 3)	usage("missing argument");    if (hard_limit > open_file_limit - 10)	hard_limit = open_file_limit - 10;    soft_limit = hard_limit + 1;    init_port_info();    if ((pe = getprotobyname("icmp")) == 0)	error("icmp: unknown protocol");    if ((icmp_sock = socket(AF_INET, SOCK_RAW, pe->p_proto)) < 0)	error("icmp socket: %m");    FD_ZERO(&icmp_sock_mask);    FD_SET(icmp_sock, &icmp_sock_mask);    if ((send_sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)	error("socket: %m");    /*     * First do a test probe to see if the host is up, and to establish the     * round-trip time. This requires that the test port is not used on the     * target host.     */    memset((char *) &dst, 0, sizeof(dst));    dst.sin_addr = find_addr(argv[1]);    dst.sin_family = AF_INET;    if (src_port) {	memset((char *) &src, 0, sizeof(src));	src.sin_addr.s_addr = INADDR_ANY;	src.sin_port = find_port(src_port, "udp");	src.sin_family = AF_INET;	if (bind(send_sock, (struct sockaddr *) & src, sizeof(src)) < 0)	    error("bind port %s: %m", src_port);    }    gettimeofday(&now, (struct timezone *) 0);    last_reply = now;    /*     * Calibrate round-trip time and dead time.     */    for (;;) {	scan_ports(test_port);	while (ports_busy > 0)	    monitor_ports();	if (avg_rtt)	    break;	sleep(1);    }    scan_ports(test_port);    /*     * Scan those ports.     */    for (ports = argv + 2; *ports; ports++)	scan_ports(*ports);    /*     * All ports probed, wait for replies to trickle back.     */    while (ports_busy > 0)	monitor_ports();    return (0);}/* usage - explain command syntax */usage(why)char   *why;{    if (why)	remark(why);    error("usage: %s [-apuU] [-l load] [-S src_port] host ports...", progname);}/* scan_ports - scan ranges of ports */scan_ports(service)char   *service;{    char   *cp;    int     min_port;    int     max_port;    int     port;    struct port_info *sp;    if (service == test_port)	test_portno = atoi(test_port);    /*     * Translate service argument to range of port numbers.     */    if ((cp = strchr(service, '-')) != 0) {	*cp++ = 0;	min_port = (service[0] ? ntohs(find_port(service, "udp")) : 1);	max_port = (cp[0] ? ntohs(find_port(cp, "udp")) : 65535);    } else {	min_port = max_port = ntohs(find_port(service, "udp"));    }    /*     * Iterate over each port in the given range. Adjust the number of     * simultaneous probes to the capacity of the network.     */    for (port = min_port; port <= max_port; port++) {	sp = add_port(port);	write_port(sp);	monitor_ports();    }}/* monitor_ports - watch for socket activity */monitor_ports(){    do {	struct port_info *sp;	/*	 * When things become quiet, examine the port that we haven't looked	 * at for the longest period of time.	 */	receive_answers();	if (ports_busy == 0)	    return;	sp = (struct port_info *) ring_succ(&active_ports);	if (sp->pkts > avg_pkts * AVG_MARGIN) {	    report_and_drop_port(sp, 0);	} else	    /*	     * Strategy depends on whether transit times dominate (probe	     * multiple ports in parallel, retransmit when no reply was	     * received for at least one round-trip period) or by dead time	     * (probe one port at a time, retransmit when no reply was	     * received for some fraction of the inter-reply period).	     */	    if (sock_age(sp) > (avg_rtt == 0 ? 1 :				2 * avg_rtt < avg_irt ? avg_irt / 4 :				1.5 * avg_rtt)) {	    write_port(sp);	}	/*	 * When all ports being probed seem to be active, send a test probe	 * to see if the host is still alive.	 */	if (time_since(last_reply) > 3 * (avg_rtt == 0 ? 1 :				      avg_rtt < avg_irt ? avg_irt : avg_rtt)	    && find_port_info(test_portno) == 0) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re热这里只有精品免费视频 | 97久久精品人人做人人爽50路 | 欧美日韩精品一区二区三区| 91亚洲午夜精品久久久久久| 高清不卡一区二区| 国产91在线观看丝袜| 成人午夜电影网站| 成人黄色综合网站| www.欧美日韩| 91在线观看下载| 91麻豆精品秘密| 日本韩国一区二区| 在线精品视频一区二区三四| 91丨九色丨尤物| 欧美三级视频在线播放| 欧美精品乱码久久久久久按摩| 欧美三级电影在线看| 91黄色激情网站| 欧美一级在线免费| 欧美sm美女调教| 久久精品视频在线看| 国产精品污www在线观看| 日本一区二区三区dvd视频在线| 欧美激情综合五月色丁香| 最好看的中文字幕久久| 亚洲成人久久影院| 91麻豆swag| 538在线一区二区精品国产| 91精品国产综合久久婷婷香蕉| 精品久久久久久综合日本欧美| 久久久久国产免费免费 | 国产成人午夜视频| 成人av网站在线| 欧美色爱综合网| 精品久久人人做人人爽| 国产精品成人一区二区艾草 | 久久精品一区二区| 亚洲视频电影在线| 青青草成人在线观看| 国产一区免费电影| 91视频免费观看| 欧美一卡二卡在线| 中文字幕一区二区三区精华液| 亚洲自拍欧美精品| 国产在线不卡一区| 欧美性生活影院| 久久精品视频一区二区| 亚洲一区中文在线| 国产精品2024| 欧美日韩亚洲丝袜制服| 久久尤物电影视频在线观看| 亚洲男人的天堂一区二区| 日本vs亚洲vs韩国一区三区二区 | 99久久综合精品| 7777精品伊人久久久大香线蕉经典版下载| 精品国产123| 亚洲午夜私人影院| 国产乱人伦精品一区二区在线观看| 色综合中文综合网| 亚洲私人影院在线观看| 日韩av在线免费观看不卡| 成人综合在线视频| 日韩一区二区三区视频在线观看| 亚洲欧洲三级电影| 精品一区二区三区免费视频| 色综合欧美在线视频区| 精品久久五月天| 婷婷一区二区三区| 91影院在线免费观看| 精品国产乱码久久久久久闺蜜| 亚洲一区二区高清| 成人免费毛片高清视频| 日韩精品一区在线观看| 亚洲国产成人va在线观看天堂| 国产精品99久久久| 日韩女优电影在线观看| 亚洲一区国产视频| 99re在线精品| 中文字幕一区二区不卡| 国内成人精品2018免费看| 欧美午夜影院一区| 亚洲丝袜精品丝袜在线| 国产成人自拍网| 精品噜噜噜噜久久久久久久久试看 | 亚洲欧洲性图库| 高清在线观看日韩| 欧美一级二级三级乱码| 亚洲成人一区在线| 91久久精品一区二区| 亚洲日本在线视频观看| 成人高清免费在线播放| 久久精品水蜜桃av综合天堂| 青草国产精品久久久久久| 欧美三级视频在线| 亚洲一区自拍偷拍| 欧美在线不卡视频| 一区二区国产盗摄色噜噜| 99视频有精品| 亚洲欧美福利一区二区| 青青草91视频| 久久99久久精品欧美| 538prom精品视频线放| 亚洲色图一区二区| 成人精品一区二区三区中文字幕| 久久久国际精品| 国产剧情一区二区| 亚洲欧美偷拍卡通变态| 精东粉嫩av免费一区二区三区| 宅男在线国产精品| 日韩成人一级大片| 日韩欧美一区在线| 国模无码大尺度一区二区三区| 久久婷婷综合激情| 成人黄页在线观看| 伊人婷婷欧美激情| 欧美日韩在线播放三区四区| 日本欧美大码aⅴ在线播放| 日韩一区二区三| 激情亚洲综合在线| 欧美国产禁国产网站cc| av电影在线观看一区| 一区二区三区在线视频观看| 欧美综合一区二区三区| 午夜电影久久久| 精品盗摄一区二区三区| 成人精品免费看| 椎名由奈av一区二区三区| 欧美视频一区二区三区四区| 日韩成人免费电影| 国产欧美精品国产国产专区| 97成人超碰视| 日韩精品一级二级| 久久久久国产精品人| 91欧美一区二区| 日韩高清在线电影| 国产日韩欧美综合一区| 一本久久a久久免费精品不卡| 午夜精品aaa| 久久精品视频网| 在线日韩国产精品| 日韩福利视频网| 国产女主播视频一区二区| 色菇凉天天综合网| 久久精品国产**网站演员| 国产精品久线在线观看| 欧美二区三区91| 高清不卡在线观看| 日韩福利电影在线| 亚洲欧洲美洲综合色网| 日韩欧美在线123| 91农村精品一区二区在线| 精品在线播放午夜| 亚洲精品一二三区| 久久天天做天天爱综合色| 在线观看91视频| 国产精品一区久久久久| 亚洲电影第三页| 欧美国产一区二区在线观看| 欧美日韩色一区| 成人av资源网站| 久久精品国产在热久久| 一区二区三区成人| 国产日产亚洲精品系列| 在线不卡的av| 色综合色综合色综合色综合色综合 | 成人av网址在线观看| 秋霞国产午夜精品免费视频| 日韩美女视频19| 久久影院午夜片一区| 欧美日韩成人高清| 99久久精品免费| 国产专区综合网| 美女脱光内衣内裤视频久久影院| 亚洲另类春色国产| 欧美极品aⅴ影院| 26uuu亚洲婷婷狠狠天堂| 欧美视频一区二区| 92国产精品观看| 丁香六月综合激情| 精品综合久久久久久8888| 午夜精品一区在线观看| 亚洲私人影院在线观看| 国产精品人妖ts系列视频| 欧美成人激情免费网| 欧美乱熟臀69xxxxxx| 欧美自拍偷拍午夜视频| 成人丝袜视频网| 国产电影一区二区三区| 久久精品国产亚洲5555| 免费在线观看一区二区三区| 亚洲成人av资源| 一区二区三区影院| 日韩理论电影院| 国产精品女主播在线观看| 久久精品一区二区三区四区| 精品久久久久久最新网址| 日韩欧美综合一区| 日韩一区二区在线免费观看| 欧美一区日韩一区| 欧美三区在线观看|