📄 in.h
字号:
/* * Copyright (c) 1982, 1986, 1990, 1993 * The Regents of the University of California. 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. * 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. * * @(#)in.h 8.3 (Berkeley) 1/3/94 * $Id: in.h,v 1.4.2.1 2003/05/15 12:04:08 ccj Exp $ */#ifndef _NETINET_IN_H_#define _NETINET_IN_H_#include <machine/endian.h> /* for ntohx routines *//* * Constants and structures defined by the internet system, * Per RFC 790, September 1981, and numerous additions. *//* * Protocols (RFC 1700) */#define IPPROTO_IP 0 /* dummy for IP */#define IPPROTO_ICMP 1 /* control message protocol */#define IPPROTO_IGMP 2 /* group mgmt protocol */#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */#define IPPROTO_IPIP 4 /* IP encapsulation in IP */#define IPPROTO_TCP 6 /* tcp */#define IPPROTO_ST 7 /* Stream protocol II */#define IPPROTO_EGP 8 /* exterior gateway protocol */#define IPPROTO_PIGP 9 /* private interior gateway */#define IPPROTO_RCCMON 10 /* BBN RCC Monitoring */#define IPPROTO_NVPII 11 /* network voice protocol*/#define IPPROTO_PUP 12 /* pup */#define IPPROTO_ARGUS 13 /* Argus */#define IPPROTO_EMCON 14 /* EMCON */#define IPPROTO_XNET 15 /* Cross Net Debugger */#define IPPROTO_CHAOS 16 /* Chaos*/#define IPPROTO_UDP 17 /* user datagram protocol */#define IPPROTO_MUX 18 /* Multiplexing */#define IPPROTO_MEAS 19 /* DCN Measurement Subsystems */#define IPPROTO_HMP 20 /* Host Monitoring */#define IPPROTO_PRM 21 /* Packet Radio Measurement */#define IPPROTO_IDP 22 /* xns idp */#define IPPROTO_TRUNK1 23 /* Trunk-1 */#define IPPROTO_TRUNK2 24 /* Trunk-2 */#define IPPROTO_LEAF1 25 /* Leaf-1 */#define IPPROTO_LEAF2 26 /* Leaf-2 */#define IPPROTO_RDP 27 /* Reliable Data */#define IPPROTO_IRTP 28 /* Reliable Transaction */#define IPPROTO_TP 29 /* tp-4 w/ class negotiation */#define IPPROTO_BLT 30 /* Bulk Data Transfer */#define IPPROTO_NSP 31 /* Network Services */#define IPPROTO_INP 32 /* Merit Internodal */#define IPPROTO_SEP 33 /* Sequential Exchange */#define IPPROTO_3PC 34 /* Third Party Connect */#define IPPROTO_IDPR 35 /* InterDomain Policy Routing */#define IPPROTO_XTP 36 /* XTP */#define IPPROTO_DDP 37 /* Datagram Delivery */#define IPPROTO_CMTP 38 /* Control Message Transport */#define IPPROTO_TPXX 39 /* TP++ Transport */#define IPPROTO_IL 40 /* IL transport protocol */#define IPPROTO_SIP 41 /* Simple Internet Protocol */#define IPPROTO_SDRP 42 /* Source Demand Routing */#define IPPROTO_SIPSR 43 /* SIP Source Route */#define IPPROTO_SIPFRAG 44 /* SIP Fragment */#define IPPROTO_IDRP 45 /* InterDomain Routing*/#define IPPROTO_RSVP 46 /* resource reservation */#define IPPROTO_GRE 47 /* General Routing Encap. */#define IPPROTO_MHRP 48 /* Mobile Host Routing */#define IPPROTO_BHA 49 /* BHA */#define IPPROTO_ESP 50 /* SIPP Encap Sec. Payload */#define IPPROTO_AH 51 /* SIPP Auth Header */#define IPPROTO_INLSP 52 /* Integ. Net Layer Security */#define IPPROTO_SWIPE 53 /* IP with encryption */#define IPPROTO_NHRP 54 /* Next Hop Resolution *//* 55-60: Unassigned */#define IPPROTO_AHIP 61 /* any host internal protocol */#define IPPROTO_CFTP 62 /* CFTP */#define IPPROTO_HELLO 63 /* "hello" routing protocol */#define IPPROTO_SATEXPAK 64 /* SATNET/Backroom EXPAK */#define IPPROTO_KRYPTOLAN 65 /* Kryptolan */#define IPPROTO_RVD 66 /* Remote Virtual Disk */#define IPPROTO_IPPC 67 /* Pluribus Packet Core */#define IPPROTO_ADFS 68 /* Any distributed FS */#define IPPROTO_SATMON 69 /* Satnet Monitoring */#define IPPROTO_VISA 70 /* VISA Protocol */#define IPPROTO_IPCV 71 /* Packet Core Utility */#define IPPROTO_CPNX 72 /* Comp. Prot. Net. Executive */#define IPPROTO_CPHB 73 /* Comp. Prot. HeartBeat */#define IPPROTO_WSN 74 /* Wang Span Network */#define IPPROTO_PVP 75 /* Packet Video Protocol */#define IPPROTO_BRSATMON 76 /* BackRoom SATNET Monitoring */#define IPPROTO_ND 77 /* Sun net disk proto (temp.) */#define IPPROTO_WBMON 78 /* WIDEBAND Monitoring */#define IPPROTO_WBEXPAK 79 /* WIDEBAND EXPAK */#define IPPROTO_EON 80 /* ISO cnlp */#define IPPROTO_VMTP 81 /* VMTP */#define IPPROTO_SVMTP 82 /* Secure VMTP */#define IPPROTO_VINES 83 /* Banyon VINES */#define IPPROTO_TTP 84 /* TTP */#define IPPROTO_IGP 85 /* NSFNET-IGP */#define IPPROTO_DGP 86 /* dissimilar gateway prot. */#define IPPROTO_TCF 87 /* TCF */#define IPPROTO_IGRP 88 /* Cisco/GXS IGRP */#define IPPROTO_OSPFIGP 89 /* OSPFIGP */#define IPPROTO_SRPC 90 /* Strite RPC protocol */#define IPPROTO_LARP 91 /* Locus Address Resoloution */#define IPPROTO_MTP 92 /* Multicast Transport */#define IPPROTO_AX25 93 /* AX.25 Frames */#define IPPROTO_IPEIP 94 /* IP encapsulated in IP */#define IPPROTO_MICP 95 /* Mobile Int.ing control */#define IPPROTO_SCCSP 96 /* Semaphore Comm. security */#define IPPROTO_ETHERIP 97 /* Ethernet IP encapsulation */#define IPPROTO_ENCAP 98 /* encapsulation header */#define IPPROTO_APES 99 /* any private encr. scheme */#define IPPROTO_GMTP 100 /* GMTP*//* 101-254: Unassigned *//* 255: Reserved *//* BSD Private, local use, namespace incursion */#define IPPROTO_DIVERT 254 /* divert pseudo-protocol */#define IPPROTO_RAW 255 /* raw IP packet */#define IPPROTO_MAX 256/* * Merged from FreeBSD 1.78 of this file so Python compiles. * This is a size value for functions such as inet_ntop(). */#define INET_ADDRSTRLEN 16/* * Local port number conventions: * * When a user does a bind(2) or connect(2) with a port number of zero, * a non-conflicting local port address is chosen. * The default range is IPPORT_RESERVED through * IPPORT_USERRESERVED, although that is settable by sysctl. * * A user may set the IPPROTO_IP option IP_PORTRANGE to change this * default assignment range. * * The value IP_PORTRANGE_DEFAULT causes the default behavior. * * The value IP_PORTRANGE_HIGH changes the range of candidate port numbers * into the "high" range. These are reserved for client outbound connections * which do not want to be filtered by any firewalls. * * The value IP_PORTRANGE_LOW changes the range to the "low" are * that is (by convention) restricted to privileged processes. This * convention is based on "vouchsafe" principles only. It is only secure * if you trust the remote host to restrict these ports. * * The default range of ports and the high range can be changed by * sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto) * * Changing those values has bad security implications if you are * using a a stateless firewall that is allowing packets outside of that * range in order to allow transparent outgoing connections. * * Such a firewall configuration will generally depend on the use of these * default values. If you change them, you may find your Security * Administrator looking for you with a heavy object. *//* * Ports < IPPORT_RESERVED are reserved for * privileged processes (e.g. root). (IP_PORTRANGE_LOW) * Ports > IPPORT_USERRESERVED are reserved * for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT) */#define IPPORT_RESERVED 1024#define IPPORT_USERRESERVED 5000/* * Default local port range to use by setting IP_PORTRANGE_HIGH */#define IPPORT_HIFIRSTAUTO 40000#define IPPORT_HILASTAUTO 44999/* * Scanning for a free reserved port return a value below IPPORT_RESERVED, * but higher than IPPORT_RESERVEDSTART. Traditionally the start value was * 512, but that conflicts with some well-known-services that firewalls may * have a fit if we use. */#define IPPORT_RESERVEDSTART 600#define BYTE_PACK __attribute__((packed))/* * Internet address (a structure for historical reasons) */struct in_addr { u_long s_addr BYTE_PACK;};/*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -