⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libnet-functions.h

📁 libnet的unix/linux版本
💻 H
📖 第 1 页 / 共 2 页
字号:
/* *  $Id: libnet-functions.h,v 1.1.1.1 2000/05/25 00:28:49 route Exp $ * *  libnet-functions.h - Network routine library function prototype header file * *  Copyright (c) 1998 - 2001 Mike D. Schiffman <mike@infonexus.com> *  All rights reserved. * * 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. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. * */#ifndef __LIBNET_FUNCTIONS_H#define __LIBNET_FUNCTIONS_Hint                                     /* 1 if good, -1 if bad */libnet_plist_chain_new(    struct libnet_plist_chain **,       /* pointer to the head of the list */    char *                              /* token list pointer */    );int                                     /* 1 if more nodes, 0 if not */libnet_plist_chain_next_pair(    struct libnet_plist_chain *,        /* pointer to the head of the list */    u_short *,                          /* holds bport */    u_short *                           /* holds eport */    );intlibnet_plist_chain_dump(    struct libnet_plist_chain *         /* pointer to the head of the list */    );u_char *libnet_plist_chain_dump_string(    struct libnet_plist_chain *         /* pointer to the head of the list */    );intlibnet_plist_chain_free(    struct libnet_plist_chain *         /* pointer to the head of the list */    );/* *  Standard error handling code. */voidlibnet_error(    int,                /* severity */    char *,             /* error message */    ...                 /* varargs */    );/* *  Seeds the pseudorandom number generator with gettimeofday. */intlibnet_seed_prand();/* *  Returns a psuedorandom positive integer. */u_longlibnet_get_prand(    int                 /* One of the PR* constants */    );/* *  Calculates IPv4 family checksum on packet headers. */int                     /* 1 on success, -1 on failure */libnet_do_checksum(    u_char *,           /* Pointer to the packet buffer */    int,                /* Protocol */    int                 /* Packet size */    );/* *  Network byte order into IP address *  Previous versions had a memory leak (returned a strdup'd pointer -- strdup *  has an implicit malloc which wasn't getting freed).  This static var hack *  thingy was used to preserve existing code without having to change much. *  You can simply use the return value of the function directly allowing you *  to write tighter, more obvious code (rather then having to do allocate an *  additional buffer for the output). *  Thanks to Red for the idea. */u_char *                /* Pointer to hostname or dotted decimal IP address */libnet_host_lookup(    u_long,             /* Network byte ordered (big endian) IP address */    u_short             /* Use domain names or no */    );/* *  Network byte order into IP address *  Threadsafe version. */voidlibnet_host_lookup_r(    u_long,             /* Network byte ordered (big endian) IP address */    u_short,            /* Use domain names or no */    u_char *            /* Pointer to hostname or dotted decimal IP address */    );/* *  IP address into network byte order */u_long                  /* Network byte ordered IP address or -1 on error */libnet_name_resolve(    u_char *,           /* Pointer the hostname or dotted decimal IP address */    u_short             /* Use domain names or no */    );/* *  IP checksum wrapper. */u_short                 /* Standard IP checksum of header and data */libnet_ip_check(    u_short *,          /* Pointer to the buffer to be summed */    int                 /* Packet length */    );/* *  IP checksum. */int                     /* Standard IP checksum */libnet_in_cksum(    u_short *,          /* Pointer to the buffer to be summed */    int                 /* Packet length */    );/* *  Opens a socket for writing raw IP datagrams to.  Set IP_HDRINCL to let the  *  kernel know we've got it all under control. */int                     /* Opened file desciptor, or -1 on error */libnet_open_raw_sock(    int                 /* Protocol of raw socket (from /etc/protocols) */    );int                     /* 1 upon success, or -1 on error */libnet_close_raw_sock(    int                 /* File descriptor */    );intlibnet_select_device(    struct sockaddr_in *,    char **,    char *    );/* *  Ethernet packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_ethernet(    u_char *,           /* Pointer to a 6 byte ethernet address */    u_char *,           /* Pointer to a 6 byte ethernet address */    u_short,            /* Packet IP type */    const u_char *,     /* Payload (or NULL) */    int,                /* Payload size */    u_char *            /* Packet header buffer */    );/* *  ARP packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_arp(    u_short,            /* hardware address type */    u_short,            /* protocol address type */    u_char,             /* hardware address length */    u_char,             /* protocol address length */    u_short,            /* ARP operation type */    u_char *,           /* sender hardware address */    u_char *,           /* sender protocol address */    u_char *,           /* target hardware address */    u_char *,           /* target protocol address */    const u_char *,     /* payload or NULL if none */    int,                /* payload length */    u_char *            /* packet buffer memory */    );/* *  TCP packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_tcp(    u_short,            /* Source port */    u_short,            /* Destination port */    u_long,             /* Sequence Number */    u_long,             /* Acknowledgement Number */    u_char,             /* Control bits */    u_short,            /* Advertised Window Size */    u_short,            /* Urgent Pointer */    const u_char *,     /* Pointer to packet data (or NULL) */    int,                /* Packet payload size */    u_char *            /* Pointer to packet header memory */    );/* * UDP packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_udp(    u_short,            /* Source port */    u_short,            /* Destination port */    const u_char *,     /* Pointer to packet data (or NULL) */    int,                /* Packet payload size */    u_char *            /* Pointer to packet header memory */    );/* *  ICMP_ECHO packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_icmp_echo(    u_char,             /* icmp type */    u_char,             /* icmp code */    u_short,            /* id */    u_short,            /* sequence number */    const u_char *,     /* Pointer to packet data (or NULL) */    int,                /* Packet payload size */    u_char *            /* Pointer to packet header memory */    );/* *  ICMP_MASK packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_icmp_mask(    u_char,             /* icmp type */    u_char,             /* icmp code */    u_short,            /* id */    u_short,            /* sequence number */    u_long,             /* address mask */    const u_char *,     /* Pointer to packet data (or NULL) */    int,                /* Packet payload size */    u_char *            /* Pointer to packet header memory */    );/* *  ICMP_UNREACH packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_icmp_unreach(    u_char,             /* icmp type */    u_char,             /* icmp code */    u_short,            /* Original Length of packet data */    u_char,             /* Original IP tos */    u_short,            /* Original IP ID */    u_short,            /* Original Fragmentation flags and offset */    u_char,             /* Original TTL */    u_char,             /* Original Protocol */    u_long,             /* Original Source IP Address */    u_long,             /* Original Destination IP Address */    const u_char *,     /* Pointer to original packet data (or NULL) */    int,                /* Packet payload size (or 0) */    u_char *            /* Pointer to packet header memory */    );/* *  ICMP_REDIRECT packet assembler. */int                     /* -1 on failure (null buf passed in), 1 on success */libnet_build_icmp_redirect(    u_char,             /* icmp type */    u_char,             /* icmp code */    u_long,             /* Gateway host that should be used */    u_short,            /* Original Length of packet data */    u_char,             /* Original IP tos */    u_short,            /* Original IP ID */    u_short,            /* Original Fragmentation flags and offset */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -