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

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

?? traceroute.c

?? 手機嵌入式Linux下可用的busybox源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*- * Copyright (c) 1990, 1993 *      The Regents of the University of California.  All rights reserved. * * This code is derived from software contributed to Berkeley by * Van Jacobson. * * Special for busybox ported by Vladimir Oleynik <dzo@simtreas.ru> 2001 * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *      This product includes software developed by the University of *      California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *//* * traceroute host  - trace the route ip packets follow going to "host". * Notes * ----- * This program must be run by root or be setuid.  (I suggest that * you *don't* make it setuid -- casual use could result in a lot * of unnecessary traffic on our poor, congested nets.) * * I stole the idea for this program from Steve Deering.  Since * the first release, I've learned that had I attended the right * IETF working group meetings, I also could have stolen it from Guy * Almes or Matt Mathis.  I don't know (or care) who came up with * the idea first.  I envy the originators' perspicacity and I'm * glad they didn't keep the idea a secret. * * Tim Seaver, Ken Adelman and C. Philip Wood provided bug fixes and/or * enhancements to the original distribution. * * I've hacked up a round-trip-route version of this that works by * sending a loose-source-routed udp datagram through the destination * back to yourself.  Unfortunately, SO many gateways botch source * routing, the thing is almost worthless.  Maybe one day... * *  -- Van Jacobson (van@helios.ee.lbl.gov) *     Tue Dec 20 03:50:13 PST 1988 */#undef BB_FEATURE_TRACEROUTE_VERBOSE//#define BB_FEATURE_TRACEROUTE_VERBOSE#undef BB_FEATURE_TRACEROUTE_SO_DEBUG   /* not in documentation man */#include <stdio.h>#include <errno.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/time.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <endian.h>#include <arpa/inet.h>#include <netinet/udp.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>  /* It turns out that libc5 doesn't have proper icmp support * built into it header files, so we have to supplement it */#if __GNU_LIBRARY__ < 5static const int ICMP_MINLEN = 8;				/* abs minimum */struct icmp_ra_addr{  u_int32_t ira_addr;  u_int32_t ira_preference;};struct icmp{  u_int8_t  icmp_type;	/* type of message, see below */  u_int8_t  icmp_code;	/* type sub code */  u_int16_t icmp_cksum;	/* ones complement checksum of struct */  union  {    u_char ih_pptr;		/* ICMP_PARAMPROB */    struct in_addr ih_gwaddr;	/* gateway address */    struct ih_idseq		/* echo datagram */    {      u_int16_t icd_id;      u_int16_t icd_seq;    } ih_idseq;    u_int32_t ih_void;    /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */    struct ih_pmtu    {      u_int16_t ipm_void;      u_int16_t ipm_nextmtu;    } ih_pmtu;    struct ih_rtradv    {      u_int8_t irt_num_addrs;      u_int8_t irt_wpa;      u_int16_t irt_lifetime;    } ih_rtradv;  } icmp_hun;#define	icmp_pptr	icmp_hun.ih_pptr#define	icmp_gwaddr	icmp_hun.ih_gwaddr#define	icmp_id		icmp_hun.ih_idseq.icd_id#define	icmp_seq	icmp_hun.ih_idseq.icd_seq#define	icmp_void	icmp_hun.ih_void#define	icmp_pmvoid	icmp_hun.ih_pmtu.ipm_void#define	icmp_nextmtu	icmp_hun.ih_pmtu.ipm_nextmtu#define	icmp_num_addrs	icmp_hun.ih_rtradv.irt_num_addrs#define	icmp_wpa	icmp_hun.ih_rtradv.irt_wpa#define	icmp_lifetime	icmp_hun.ih_rtradv.irt_lifetime  union  {    struct    {      u_int32_t its_otime;      u_int32_t its_rtime;      u_int32_t its_ttime;    } id_ts;    struct    {      struct ip idi_ip;      /* options and then 64 bits of data */    } id_ip;    struct icmp_ra_addr id_radv;    u_int32_t   id_mask;    u_int8_t    id_data[1];  } icmp_dun;#define	icmp_otime	icmp_dun.id_ts.its_otime#define	icmp_rtime	icmp_dun.id_ts.its_rtime#define	icmp_ttime	icmp_dun.id_ts.its_ttime#define	icmp_ip		icmp_dun.id_ip.idi_ip#define	icmp_radv	icmp_dun.id_radv#define	icmp_mask	icmp_dun.id_mask#define	icmp_data	icmp_dun.id_data};#define	ICMP_MINLEN	8				/* abs minimum */#define	ICMP_UNREACH		3		/* dest unreachable, codes: */#define	ICMP_TIMXCEED		11		/* time exceeded, code: */#define	ICMP_TIMXCEED_INTRANS	0		/* ttl==0 in transit */#define	ICMP_UNREACH_NET	        0	/* bad net */#define	ICMP_UNREACH_HOST	        1	/* bad host */#define	ICMP_UNREACH_PROTOCOL	        2	/* bad protocol */#define	ICMP_UNREACH_PORT	        3	/* bad port */#define	ICMP_UNREACH_NEEDFRAG	        4	/* IP_DF caused drop */#define	ICMP_UNREACH_SRCFAIL	        5	/* src route failed */#endif#define MAXPACKET       65535   /* max ip packet size */#ifndef MAXHOSTNAMELEN#define MAXHOSTNAMELEN  64#endif/* * format of a (udp) probe packet. */struct opacket {	struct ip ip;	struct udphdr udp;	u_char seq;             /* sequence number of this packet */	u_char ttl;             /* ttl packet left with */	struct timeval tv;      /* time packet left */};/* * Definitions for internet protocol version 4. * Per RFC 791, September 1981. */#define IPVERSION       4#include "busybox.h"static u_char  packet[512];            /* last inbound (icmp) packet */static struct opacket  *outpacket;     /* last output (udp) packet */static int s;                          /* receive (icmp) socket file descriptor */static int sndsock;                    /* send (udp) socket file descriptor */static struct sockaddr whereto;        /* Who to try to reach */static int datalen;                    /* How much data */static char *hostname;static int max_ttl = 30;static u_short ident;static u_short port = 32768+666;       /* start udp dest port # for probe packets */#ifdef BB_FEATURE_TRACEROUTE_VERBOSEstatic int verbose;#endifstatic int waittime = 5;               /* time to wait for response (in seconds) */static int nflag;                      /* print addresses numerically *//* * Construct an Internet address representation. * If the nflag has been supplied, give * numeric value, otherwise try for symbolic name. */static inline voidinetname(struct sockaddr_in *from){	char *cp;	struct hostent *hp;	static char domain[MAXHOSTNAMELEN + 1];	static int first = 1;	const char *ina;	if (first && !nflag) {		first = 0;		if (getdomainname(domain, MAXHOSTNAMELEN) != 0)		    domain[0] = 0;	}	cp = 0;	if (!nflag && from->sin_addr.s_addr != INADDR_ANY) {		hp = gethostbyaddr((char *)&(from->sin_addr), sizeof (from->sin_addr), AF_INET);		if (hp) {			if ((cp = strchr(hp->h_name, '.')) && !strcmp(cp + 1, domain))				*cp = 0;			cp = (char *)hp->h_name;		}	}	ina = inet_ntoa(from->sin_addr);	if (nflag)		printf(" %s", ina);	else		printf(" %s (%s)", (cp ? cp : ina), ina);}static inline voidprint(u_char *buf, int cc, struct sockaddr_in *from){	struct ip *ip;	int hlen;	ip = (struct ip *) buf;	hlen = ip->ip_hl << 2;	cc -= hlen;	inetname(from);#ifdef BB_FEATURE_TRACEROUTE_VERBOSE	if (verbose)		printf (" %d bytes to %s", cc, inet_ntoa (ip->ip_dst));#endif}static inline doubledeltaT(struct timeval *t1p, struct timeval *t2p){	double dt;	dt = (double)(t2p->tv_sec - t1p->tv_sec) * 1000.0 +	     (double)(t2p->tv_usec - t1p->tv_usec) / 1000.0;	return (dt);}static inline intwait_for_reply(int sock, struct sockaddr_in *from, int reset_timer){	fd_set fds;	static struct timeval wait;	int cc = 0;	int fromlen = sizeof (*from);	FD_ZERO(&fds);	FD_SET(sock, &fds);	if (reset_timer) {		/*		 * traceroute could hang if someone else has a ping		 * running and our ICMP reply gets dropped but we don't		 * realize it because we keep waking up to handle those		 * other ICMP packets that keep coming in.  To fix this,		 * "reset_timer" will only be true if the last packet that		 * came in was for us or if this is the first time we're		 * waiting for a reply since sending out a probe.  Note		 * that this takes advantage of the select() feature on		 * Linux where the remaining timeout is written to the		 * struct timeval area.		 */		wait.tv_sec = waittime;		wait.tv_usec = 0;	}	if (select(sock+1, &fds, (fd_set *)0, (fd_set *)0, &wait) > 0)		cc=recvfrom(s, (char *)packet, sizeof(packet), 0,			    (struct sockaddr *)from, &fromlen);	return(cc);}#ifdef BB_FEATURE_TRACEROUTE_VERBOSE/* * Convert an ICMP "type" field to a printable string. */static inline const char *pr_type(u_char t){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产1区2区| 国产精品女主播av| 国产精品久久夜| 日韩精品视频网| av激情综合网| 精品乱码亚洲一区二区不卡| 亚洲精品精品亚洲| 成人美女视频在线看| 欧美一区二区日韩| 亚洲成人免费电影| 91蜜桃在线免费视频| 国产亚洲自拍一区| 久久精品国产一区二区三 | 欧美三片在线视频观看| 国产欧美一区视频| 精品一区二区三区不卡| 欧美人妇做爰xxxⅹ性高电影| 亚洲一区欧美一区| 国产成人自拍网| 精品国产精品一区二区夜夜嗨| 亚洲最大成人网4388xx| jizzjizzjizz欧美| 国产日韩视频一区二区三区| 调教+趴+乳夹+国产+精品| 色美美综合视频| 亚洲视频一二三区| 成人网男人的天堂| 国产精品你懂的在线欣赏| 国产在线精品免费| 久久综合一区二区| 久久精品国产久精国产| 欧美一区二区三区精品| 婷婷国产v国产偷v亚洲高清| 精品婷婷伊人一区三区三| 伊人色综合久久天天| 色哟哟一区二区三区| 亚洲另类色综合网站| av动漫一区二区| 亚洲视频一区二区在线| 91小视频在线免费看| 亚洲欧美一区二区三区孕妇| 97精品国产97久久久久久久久久久久| 久久久另类综合| 国产成人av电影在线| 国产亚洲福利社区一区| 99久久国产综合精品女不卡| 亚洲欧洲无码一区二区三区| 一本大道av一区二区在线播放| 亚洲欧美日韩久久| 在线日韩国产精品| 日韩国产欧美在线观看| 日韩欧美国产电影| 国产一区二区三区在线观看免费| 精品国产免费人成在线观看| 国产精品一区免费视频| 国产精品久久久久久久久晋中| av亚洲产国偷v产偷v自拍| 成人免费在线视频观看| 在线观看国产日韩| 免费成人av在线播放| 久久精品一区四区| 欧美综合久久久| 久久成人久久鬼色| 亚洲视频1区2区| 欧美电视剧在线看免费| 成人综合婷婷国产精品久久蜜臀 | 一区二区三区蜜桃网| 精品福利av导航| 福利一区在线观看| 亚洲宅男天堂在线观看无病毒| 日韩一二三四区| 国产91高潮流白浆在线麻豆 | 欧美性受极品xxxx喷水| 美国十次了思思久久精品导航| 国产精品网站一区| 欧美精品在线观看一区二区| 成人性视频网站| 天使萌一区二区三区免费观看| 日本一区二区在线不卡| 9191国产精品| 99精品久久只有精品| 久久不见久久见中文字幕免费| 最新高清无码专区| 日韩女优av电影在线观看| 在线看日本不卡| 国产河南妇女毛片精品久久久| 亚洲电影在线免费观看| 国产日韩欧美精品在线| 欧美精品久久久久久久多人混战 | 久国产精品韩国三级视频| 亚洲美女免费视频| 国产三级三级三级精品8ⅰ区| 欧美日韩一区高清| 91在线视频免费91| 成人黄色在线视频| 精品在线免费观看| 亚洲电影你懂得| 综合久久综合久久| 中文字幕高清一区| 精品成人a区在线观看| 欧美美女喷水视频| 色噜噜偷拍精品综合在线| 成人精品国产一区二区4080| 精品在线亚洲视频| 精品制服美女久久| 久久99精品久久久久| 蜜臀a∨国产成人精品| 午夜精品爽啪视频| 亚洲第一搞黄网站| 亚洲午夜久久久久久久久久久| 日韩毛片一二三区| 中文字幕一区二区三区视频| 国产精品三级av| 国产精品私房写真福利视频| 久久只精品国产| 欧美精品一区二区三区蜜桃| 欧美成人一区二区三区| 日韩一区二区三区免费看 | 欧美激情一二三区| 国产精品污污网站在线观看| 国产日韩欧美一区二区三区乱码 | 日韩免费在线观看| 日韩一区二区在线看片| 欧美成人精品1314www| 日韩欧美在线综合网| 日韩精品一区二区三区老鸭窝| 日韩女优电影在线观看| 久久综合狠狠综合| 国产精品久久久久久久久免费相片 | 日本欧美一区二区在线观看| 日韩成人免费电影| 国产在线视视频有精品| 久久不见久久见免费视频7| 国产一区二区三区四| 粉嫩aⅴ一区二区三区四区| 成人av动漫网站| 欧美色视频一区| 日韩欧美123| 中文字幕一区二区三区四区不卡| 亚洲美女少妇撒尿| 欧美aⅴ一区二区三区视频| 狠狠狠色丁香婷婷综合激情| 99久久国产综合精品色伊| 欧美色视频在线| 久久久亚洲综合| 亚洲欧美区自拍先锋| 日韩电影免费在线看| 国产很黄免费观看久久| 欧美最猛性xxxxx直播| 日韩女优毛片在线| 中文字幕中文字幕中文字幕亚洲无线| 一区二区三区欧美日| 激情综合亚洲精品| 91论坛在线播放| 日韩视频在线一区二区| 亚洲人123区| 麻豆91在线观看| 色悠悠久久综合| 久久综合丝袜日本网| 一区二区三区电影在线播| 免费成人结看片| 91浏览器在线视频| 久久久久久麻豆| 天堂午夜影视日韩欧美一区二区| 国产不卡视频在线观看| 欧美日韩不卡一区| 国产精品日日摸夜夜摸av| 蜜臀av性久久久久蜜臀aⅴ流畅| 91丝袜高跟美女视频| 精品国产乱码久久久久久浪潮| 亚洲精品国产无套在线观| 紧缚捆绑精品一区二区| 欧美日韩一区 二区 三区 久久精品| 久久综合色婷婷| 天天色天天爱天天射综合| eeuss鲁片一区二区三区在线观看| 日韩一区二区三区视频在线观看| 亚洲少妇30p| jlzzjlzz欧美大全| 国产亚洲欧美日韩日本| 美女国产一区二区三区| 在线免费观看日本欧美| 国产精品动漫网站| 国产精品亚洲一区二区三区妖精| 欧美一卡2卡三卡4卡5免费| 一区二区三区四区国产精品| 成人免费三级在线| 久久精品免视看| 国精产品一区一区三区mba桃花| 欧美精品视频www在线观看 | 欧美日韩国产一二三| 亚洲色图另类专区| 国产69精品久久777的优势| 欧美成人精品二区三区99精品| 午夜在线成人av| 欧亚洲嫩模精品一区三区| 亚洲一区二区av电影| 在线亚洲高清视频| 夜色激情一区二区| 欧美三级日韩三级国产三级|