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

📄 pgpnetprefsfirewallrule.c

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 C
📖 第 1 页 / 共 2 页
字号:
/*____________________________________________________________________________
	Copyright (C) 2002 PGP Corporation
	All rights reserved.

	$Id: pgpNetPrefsFirewallRule.c,v 1.14 2002/08/06 20:10:25 dallen Exp $
____________________________________________________________________________*/
#include "pgpConfig.h"

#include <stdio.h>
#include <string.h>

#include "pgpDebug.h"
#include "pgpPubTypes.h"
#include "pgpStrings.h"
#include "pgpNetPrefsFirewallRule.h"
#include "pgpMem.h"
#include "pgpPFLPriv.h"


typedef struct TextEntry
{
	PGPUInt32 const		number;
	const char * const	string;
} TextEntry;

#define EN(number, string)		{ number, string }


static const TextEntry sIPProtocols[] =
{
/* __________________________________________________________________ */

EN( kPGPnetIPProtocol_ICMP,				"ICMP" ),
EN( kPGPnetIPProtocol_IGMP,				"IGMP" ),
EN( kPGPnetIPProtocol_ggp,				"GGP" ),
EN( kPGPnetIPProtocol_ip,				"IP in IP" ),
EN( kPGPnetIPProtocol_st,				"Stream" ),
EN( kPGPnetIPProtocol_TCP,				"TCP" ),
EN( kPGPnetIPProtocol_cbt,				"CBT" ),
EN( kPGPnetIPProtocol_egp,				"EGP" ),
EN( kPGPnetIPProtocol_igp,				"IGP" ),
EN( kPGPnetIPProtocol_bbnrccmon,		"BBN-RCC-Mon" ),
EN( kPGPnetIPProtocol_nvp_ii,			"NVP-II" ),
EN( kPGPnetIPProtocol_pup,				"PUP" ),
EN( kPGPnetIPProtocol_argus,			"ARGUS" ),
EN( kPGPnetIPProtocol_emcon,			"EMCON" ),
EN( kPGPnetIPProtocol_xnet,				"XNet" ),
EN( kPGPnetIPProtocol_chaos,			"Chaos" ),
EN( kPGPnetIPProtocol_UDP,				"UDP" ),
EN( kPGPnetIPProtocol_mux,				"MUX" ),
EN( kPGPnetIPProtocol_dcn_meas,			"DCN Measure" ),
EN( kPGPnetIPProtocol_hmp,				"HMP" ),
EN( kPGPnetIPProtocol_prm,				"PRM" ),
EN( kPGPnetIPProtocol_xns_idp,			"XNS-IDP" ),
EN( kPGPnetIPProtocol_trunk1,			"Trunk-1" ),
EN( kPGPnetIPProtocol_trunk2,			"Trunk-2" ),
EN( kPGPnetIPProtocol_leaf1,			"Leaf-1" ),
EN( kPGPnetIPProtocol_leaf2,			"Leaf-2" ),
EN( kPGPnetIPProtocol_rdp,				"RDP" ),
EN( kPGPnetIPProtocol_irtp,				"IRTP" ),
EN( kPGPnetIPProtocol_iso_tp4,			"ISO-TP4" ),
EN( kPGPnetIPProtocol_netblt,			"NETBLT" ),
EN( kPGPnetIPProtocol_mfe_nsp,			"MFE-NSP" ),
EN( kPGPnetIPProtocol_merit_inp,		"MERIT-INP" ),
EN( kPGPnetIPProtocol_sep,				"SEP" ),
EN( kPGPnetIPProtocol_3pc,				"3PC" ),
EN( kPGPnetIPProtocol_idpr,				"IDPR" ),
EN( kPGPnetIPProtocol_xtp,				"XTP" ),
EN( kPGPnetIPProtocol_ddp,				"DDP" ),
EN( kPGPnetIPProtocol_idpr_cmtp,		"IDPR-CMTP" ),
EN( kPGPnetIPProtocol_tppp,				"TP++" ),
EN( kPGPnetIPProtocol_il,				"IL" ),
EN( kPGPnetIPProtocol_sdrp,				"SDRP" ),
EN( kPGPnetIPProtocol_idrp,				"IDRP" ),
EN( kPGPnetIPProtocol_rsvp,				"RSVP" ),
EN( kPGPnetIPProtocol_gre,				"GRE" ),
EN( kPGPnetIPProtocol_mhrp,				"MHRP" ),
EN( kPGPnetIPProtocol_bna,				"BNA" ),
EN( kPGPnetIPProtocol_ESP,				"IPsec ESP" ),
EN( kPGPnetIPProtocol_AH,				"IPsec AH" ),
EN( kPGPnetIPProtocol_i_nlsp,			"I-NLSP" ),
EN( kPGPnetIPProtocol_swipe,			"SWIPE" ),
EN( kPGPnetIPProtocol_narp,				"NARP" ),
EN( kPGPnetIPProtocol_mobile,			"MOBILE" ),
EN( kPGPnetIPProtocol_tlsp,				"TLSP" ),
EN( kPGPnetIPProtocol_skip,				"SKIP" ),
EN( kPGPnetIPProtocol_cftp,				"CFTP" ),
EN( kPGPnetIPProtocol_sat_expak,		"SAT-EXPAK" ),
EN( kPGPnetIPProtocol_kryptolan,		"Kryptolan" ),
EN( kPGPnetIPProtocol_rvd,				"RVD" ),
EN( kPGPnetIPProtocol_ippc,				"IPPC" ),
EN( kPGPnetIPProtocol_sat_mon,			"SAT-Mon" ),
EN( kPGPnetIPProtocol_visa,				"VISA" ),
EN( kPGPnetIPProtocol_ipcv,				"IPCV" ),
EN( kPGPnetIPProtocol_cpnx,				"CPNX" ),
EN( kPGPnetIPProtocol_cphb,				"CPHB" ),
EN( kPGPnetIPProtocol_wsn,				"WSN" ),
EN( kPGPnetIPProtocol_pvp,				"PVP" ),
EN( kPGPnetIPProtocol_br_sat_mon,		"BR-SAT-Mon" ),
EN( kPGPnetIPProtocol_sun_nd,			"SUN-ND" ),
EN( kPGPnetIPProtocol_wb_mon,			"WB-Mon" ),
EN( kPGPnetIPProtocol_wb_expak,			"WB-EXPAK" ),
EN( kPGPnetIPProtocol_iso_ip,			"ISO-IP" ),
EN( kPGPnetIPProtocol_vmtp,				"VMTP" ),
EN( kPGPnetIPProtocol_secure_vmtp,		"SECURE-VMTP" ),
EN( kPGPnetIPProtocol_vines,			"VINES" ),
EN( kPGPnetIPProtocol_ttp,				"TTP" ),
EN( kPGPnetIPProtocol_nsfnet_igp,		"NSFNET-IGP" ),
EN( kPGPnetIPProtocol_dgp,				"DGP" ),
EN( kPGPnetIPProtocol_tcf,				"TCF" ),
EN( kPGPnetIPProtocol_eigrp,			"EIGRP" ),
EN( kPGPnetIPProtocol_ospfigp,			"OSPFIGP" ),
EN( kPGPnetIPProtocol_sprite_rpc,		"Sprite-RPC" ),
EN( kPGPnetIPProtocol_larp,				"LARP" ),
EN( kPGPnetIPProtocol_mtp,				"MTP" ),
EN( kPGPnetIPProtocol_ax25,				"AX.25" ),
EN( kPGPnetIPProtocol_ipip,				"IPIP" ),
EN( kPGPnetIPProtocol_micp,				"MICP" ),
EN( kPGPnetIPProtocol_scc_sp,			"SCC-SP" ),
EN( kPGPnetIPProtocol_etherip,			"ETHERIP" ),
EN( kPGPnetIPProtocol_encap,			"ENCAP" ),
EN( kPGPnetIPProtocol_gmtp,				"GMTP" ),
EN( kPGPnetIPProtocol_ifmp,				"IFMP" ),
EN( kPGPnetIPProtocol_pnni,				"PNNI" ),
EN( kPGPnetIPProtocol_pim,				"PIM" ),
EN( kPGPnetIPProtocol_aris,				"ARIS" ),
EN( kPGPnetIPProtocol_scps,				"SCPS" ),
EN( kPGPnetIPProtocol_qnx,				"QNX" ),
EN( kPGPnetIPProtocol_an,				"A/N" ),
EN( kPGPnetIPProtocol_ipcomp,			"IPComp" ),
EN( kPGPnetIPProtocol_snp,				"SNP" ),
EN( kPGPnetIPProtocol_compaq_peer,		"Compaq-Peer" ),
EN( kPGPnetIPProtocol_ipx_in_ip,		"IPX-in-IP" ),
EN( kPGPnetIPProtocol_vrrp,				"VRRP" ),
EN( kPGPnetIPProtocol_pgm,				"PGM" ),
EN( kPGPnetIPProtocol_l2tp,				"L2TP" ),
EN( kPGPnetIPProtocol_ddx,				"DDX" ),
EN( kPGPnetIPProtocol_iatp,				"IATP" ),
EN( kPGPnetIPProtocol_stp,				"STP" ),
EN( kPGPnetIPProtocol_srp,				"SRP" ),
EN( kPGPnetIPProtocol_uti,				"UTI" ),
EN( kPGPnetIPProtocol_smp,				"SMP" ),
EN( kPGPnetIPProtocol_sm,				"SM" ),
EN( kPGPnetIPProtocol_ptp,				"PTP" ),
EN( kPGPnetIPProtocol_fire,				"FIRE" ),
EN( kPGPnetIPProtocol_crtp,				"CRTP" ),
EN( kPGPnetIPProtocol_crudp,			"CRUDP" ),
EN( kPGPnetIPProtocol_sscopmce,			"SSCOPMCE" ),
EN( kPGPnetIPProtocol_iplt,				"IPLT" ),
EN( kPGPnetIPProtocol_sps,				"SPS" ),
EN( kPGPnetIPProtocol_pipe,				"PIPE" ),
EN( kPGPnetIPProtocol_sctp,				"SCTP" ),
EN( kPGPnetIPProtocol_fc,				"FC" ),
EN( kPGPnetIPProtocol_rsvp_e2e_ignore,	"RSVP-E2E-IGNORE" )

};
#define kPGP_NumIPProtocolEntries		\
	( sizeof( sIPProtocols ) / sizeof( sIPProtocols[ 0 ] ) )


static const TextEntry sICMPTypes[] =
{
/* __________________________________________________________________ */

EN( kPGPnetICMPType_EchoReply,			"EchoReply" ),
EN( kPGPnetICMPType_DestUnreachable,	"DestUnreachable" ),
EN( kPGPnetICMPType_SourceQuench,		"SourceQuench" ),
EN( kPGPnetICMPType_Redirect,			"Redirect" ),
EN( kPGPnetICMPType_EchoRequest,		"EchoRequest" ),
EN( kPGPnetICMPType_RouterAdvertisement,"RouterAdvertise" ),
EN( kPGPnetICMPType_RouterSolicitation,	"RouterSolicit" ),
EN( kPGPnetICMPType_TimeExceeded,		"TTL Exceeded" ),
EN( kPGPnetICMPType_ParameterProblem,	"ParamError" ),
EN( kPGPnetICMPType_TimestampRequest,	"TimestampReq" ),
EN( kPGPnetICMPType_TimestampReply,		"TimestampRep" ),
EN( kPGPnetICMPType_InfoRequest,		"InfoReq" ),
EN( kPGPnetICMPType_InfoReply,			"InfoRep" ),
EN( kPGPnetICMPType_AddressMaskReq,		"AddrMaskReq" ),
EN( kPGPnetICMPType_AddressmaskRep,		"AddrMaskRep" )

};
#define kPGP_NumICMPTypeEntries		\
	( sizeof( sICMPTypes ) / sizeof( sICMPTypes[ 0 ] ) )


static const TextEntry sTCPServices[] =
{
/* __________________________________________________________________ */

EN( kPGPnetTCPService_tcpmux,			"tcpmux" ),
EN( kPGPnetTCPService_echo,				"echo" ),
EN( kPGPnetTCPService_discard,			"discard" ),
EN( kPGPnetTCPService_systat,			"systat" ),
EN( kPGPnetTCPService_daytime,			"daytime" ),
EN( kPGPnetTCPService_netstat,			"netstat" ),
EN( kPGPnetTCPService_qotd,				"qotd" ),
EN( kPGPnetTCPService_msp,				"msp" ),
EN( kPGPnetTCPService_chargen,			"chargen" ),			
EN( kPGPnetTCPService_ftpdata,			"ftpdata" ),
EN( kPGPnetTCPService_ftp,				"ftp" ),
EN( kPGPnetTCPService_ssh,				"ssh" ),
EN( kPGPnetTCPService_telnet,			"telnet" ),
EN( kPGPnetTCPService_smtp,				"smtp" ),
EN( kPGPnetTCPService_time,				"time" ),
EN( kPGPnetTCPService_rlp,				"rlp" ),
EN( kPGPnetTCPService_nameserver,		"nameserver" ),
EN( kPGPnetTCPService_whois,			"whois" ),
EN( kPGPnetTCPService_remailck,			"remailck" ),
EN( kPGPnetTCPService_dns,				"dns" ),
EN( kPGPnetTCPService_mtp,				"mtp" ),
EN( kPGPnetTCPService_bootps,			"bootps" ),
EN( kPGPnetTCPService_bootpc,			"bootpc" ),
EN( kPGPnetTCPService_tftp,				"tftp" ),
EN( kPGPnetTCPService_gopher,			"gopher" ),
EN( kPGPnetTCPService_rje,				"rje" ),
EN( kPGPnetTCPService_finger,			"finger" ),
EN( kPGPnetTCPService_http,				"http" ),
EN( kPGPnetTCPService_link,				"link" ),
EN( kPGPnetTCPService_kerberos,			"kerberos" ),
EN( kPGPnetTCPService_supdup,			"supdup" ),
EN( kPGPnetTCPService_linuxconf,		"linuxconf" ),
EN( kPGPnetTCPService_hostnames,		"hostnames" ),
EN( kPGPnetTCPService_iso_tsap,			"iso-tsap" ),
EN( kPGPnetTCPService_csnet_ns,			"csnet-ns" ),
EN( kPGPnetTCPService_poppassd,			"poppassd" ),
EN( kPGPnetTCPService_rtelnet,			"rtelnet" ),
EN( kPGPnetTCPService_pop2,				"pop2" ),
EN( kPGPnetTCPService_pop3,				"pop3" ),
EN( kPGPnetTCPService_sunrpc,			"sunrpc" ),
EN( kPGPnetTCPService_auth,				"auth" ),
EN( kPGPnetTCPService_sftp,				"sftp" ),
EN( kPGPnetTCPService_uucppath,			"uucppath" ),
EN( kPGPnetTCPService_nntp,				"nntp" ),
EN( kPGPnetTCPService_ntp,				"ntp" ),
EN( kPGPnetTCPService_netbios_ns,		"netbios-ns" ),
EN( kPGPnetTCPService_netbios_dgm,		"netbios-dgm" ),
EN( kPGPnetTCPService_netbios_ssn,		"netbios-ssn" ),
EN( kPGPnetTCPService_imap2,			"imap2" ),
EN( kPGPnetTCPService_snmp,				"snmp" ),
EN( kPGPnetTCPService_snmp_trap,		"snmp-trap" ),
EN( kPGPnetTCPService_cmip_man,			"cmip-man" ),
EN( kPGPnetTCPService_cmip_agent,		"cmip-agent" ),
EN( kPGPnetTCPService_xdmcp,			"xdmcp" ),
EN( kPGPnetTCPService_nextstep,			"nextstep" ),
EN( kPGPnetTCPService_bgp,				"bgp" ),
EN( kPGPnetTCPService_prospero,			"prospero" ),
EN( kPGPnetTCPService_irc,				"irc" ),
EN( kPGPnetTCPService_smux,				"smux" ),
EN( kPGPnetTCPService_at_rtmp,			"at-rtmp" ),
EN( kPGPnetTCPService_at_nbp,			"at-nbp" ),
EN( kPGPnetTCPService_at_echo,			"at-echo" ),
EN( kPGPnetTCPService_at_zis,			"at-zis" ),
EN( kPGPnetTCPService_qmtp,				"qmtp" ),
EN( kPGPnetTCPService_z3950,			"z3950" ),
EN( kPGPnetTCPService_ipx,				"ipx" ),
EN( kPGPnetTCPService_imap3,			"imap3" ),
EN( kPGPnetTCPService_rpc2portmap,		"rpc2portmap" ),
EN( kPGPnetTCPService_codaauth2,		"codaauth2" ),
EN( kPGPnetTCPService_ulistserv,		"ulistserv" ),
EN( kPGPnetTCPService_ldap,				"ldap" ),
EN( kPGPnetTCPService_https,			"https" ),
EN( kPGPnetTCPService_snpp,				"snpp" ),
EN( kPGPnetTCPService_msds,				"ms-ds" ),
EN( kPGPnetTCPService_ssmtp,			"ssmtp" ),
EN( kPGPnetTCPService_saft,				"saft" ),
EN( kPGPnetTCPService_ike,				"ike" ),
EN( kPGPnetTCPService_exec,				"exec" ),
EN( kPGPnetTCPService_login,			"login" ),
EN( kPGPnetTCPService_shell,			"shell" ),
EN( kPGPnetTCPService_printer,			"printer" ),
EN( kPGPnetTCPService_talk,				"talk" ),
EN( kPGPnetTCPService_ntalk,			"ntalk" ),
EN( kPGPnetTCPService_route,			"route" ),
EN( kPGPnetTCPService_timed,			"timed" ),
EN( kPGPnetTCPService_tempo,			"tempo" ),
EN( kPGPnetTCPService_courier,			"courier" ),
EN( kPGPnetTCPService_conference,		"conference" ),
EN( kPGPnetTCPService_netnews,			"netnews" ),
EN( kPGPnetTCPService_netwall,			"netwall" ),
EN( kPGPnetTCPService_uucp,				"uucp" ),
EN( kPGPnetTCPService_afpovertcp,		"afpovertcp" ),
EN( kPGPnetTCPService_klogin,			"klogin" ),
EN( kPGPnetTCPService_kshell,			"kshell" ),
EN( kPGPnetTCPService_remotefs,			"remotefs" ),
EN( kPGPnetTCPService_snews,			"snews" ),
EN( kPGPnetTCPService_sldap,			"sldap" ),
EN( kPGPnetTCPService_kerberos_adm,		"kerberos-adm" ),
EN( kPGPnetTCPService_webster,			"webster" ),
EN( kPGPnetTCPService_radius,			"radius" ),
EN( kPGPnetTCPService_radacct,			"radacct" ),
EN( kPGPnetTCPService_cvspserver,		"cvspserver" ),
EN( kPGPnetTCPService_kerberos4,		"kerberos4" ),
EN( kPGPnetTCPService_kerberosm,		"kerberosm" ),
EN( kPGPnetTCPService_passwd_srv,		"passwd-srv" ),
EN( kPGPnetTCPService_krb_prop,			"krb-prop" ),
EN( kPGPnetTCPService_krbupdate,		"krbupdate" ),
EN( kPGPnetTCPService_kpasswd,			"kpasswd" ),
EN( kPGPnetTCPService_simap,			"simap" ),
EN( kPGPnetTCPService_spop3,			"spop3" ),
EN( kPGPnetTCPService_socks,			"socks" ),
EN( kPGPnetTCPService_kpop,				"kpop" ),
EN( kPGPnetTCPService_mysql,			"mysql" ),
EN( kPGPnetTCPService_ircd,				"ircd" ),
EN( kPGPnetTCPService_rtsp_low,			"rtsp-low" ),
EN( kPGPnetTCPService_rtsp_high,		"rtsp-high" ),
EN( kPGPnetTCPService_webcache,			"webcache" ),
EN( kPGPnetTCPService_tproxy,			"tproxy" ),
EN( kPGPnetTCPService_pgpskep,			"pgpskep" ),
EN( kPGPnetTCPService_girlfriend,		"girlfriend" ),
EN( kPGPnetTCPService_backorifice2k,	"backorifice2k" )

};
#define kPGP_NumTCPServiceEntries		\
	( sizeof( sTCPServices ) / sizeof( sTCPServices[ 0 ] ) )

#undef EN


PGPUInt16 kIPProtocolStringList[] =
{
	kPGPnetIPProtocol_ICMP,
	kPGPnetIPProtocol_IGMP,
	kPGPnetIPProtocol_ggp,
	kPGPnetIPProtocol_ip,
	kPGPnetIPProtocol_st,
	kPGPnetIPProtocol_TCP,
	kPGPnetIPProtocol_cbt,
	kPGPnetIPProtocol_egp,
	kPGPnetIPProtocol_igp,
	kPGPnetIPProtocol_bbnrccmon,
	kPGPnetIPProtocol_nvp_ii,
	kPGPnetIPProtocol_pup,
	kPGPnetIPProtocol_argus,
	kPGPnetIPProtocol_emcon,
	kPGPnetIPProtocol_xnet,
	kPGPnetIPProtocol_chaos,
	kPGPnetIPProtocol_UDP,
	kPGPnetIPProtocol_mux,
	kPGPnetIPProtocol_dcn_meas,
	kPGPnetIPProtocol_hmp,
	kPGPnetIPProtocol_prm,
	kPGPnetIPProtocol_xns_idp,
	kPGPnetIPProtocol_trunk1,
	kPGPnetIPProtocol_trunk2,
	kPGPnetIPProtocol_leaf1,
	kPGPnetIPProtocol_leaf2,
	kPGPnetIPProtocol_rdp,
	kPGPnetIPProtocol_irtp,
	kPGPnetIPProtocol_iso_tp4,
	kPGPnetIPProtocol_netblt,
	kPGPnetIPProtocol_mfe_nsp,
	kPGPnetIPProtocol_merit_inp,
	kPGPnetIPProtocol_sep,
	kPGPnetIPProtocol_3pc,
	kPGPnetIPProtocol_idpr,
	kPGPnetIPProtocol_xtp,
	kPGPnetIPProtocol_ddp,
	kPGPnetIPProtocol_idpr_cmtp,
	kPGPnetIPProtocol_tppp,
	kPGPnetIPProtocol_il,
	kPGPnetIPProtocol_sdrp,
	kPGPnetIPProtocol_idrp,
	kPGPnetIPProtocol_rsvp,
	kPGPnetIPProtocol_gre,
	kPGPnetIPProtocol_mhrp,
	kPGPnetIPProtocol_bna,
	kPGPnetIPProtocol_ESP,
	kPGPnetIPProtocol_AH,
	kPGPnetIPProtocol_i_nlsp,
	kPGPnetIPProtocol_swipe,
	kPGPnetIPProtocol_narp,
	kPGPnetIPProtocol_mobile,
	kPGPnetIPProtocol_tlsp,
	kPGPnetIPProtocol_skip,
	kPGPnetIPProtocol_cftp,
	kPGPnetIPProtocol_sat_expak,
	kPGPnetIPProtocol_kryptolan,
	kPGPnetIPProtocol_rvd,
	kPGPnetIPProtocol_ippc,
	kPGPnetIPProtocol_sat_mon,
	kPGPnetIPProtocol_visa,
	kPGPnetIPProtocol_ipcv,
	kPGPnetIPProtocol_cpnx,
	kPGPnetIPProtocol_cphb,
	kPGPnetIPProtocol_wsn,
	kPGPnetIPProtocol_pvp,
	kPGPnetIPProtocol_br_sat_mon,
	kPGPnetIPProtocol_sun_nd,
	kPGPnetIPProtocol_wb_mon,
	kPGPnetIPProtocol_wb_expak,
	kPGPnetIPProtocol_iso_ip,
	kPGPnetIPProtocol_vmtp,
	kPGPnetIPProtocol_secure_vmtp,
	kPGPnetIPProtocol_vines,
	kPGPnetIPProtocol_ttp,
	kPGPnetIPProtocol_nsfnet_igp,
	kPGPnetIPProtocol_dgp,
	kPGPnetIPProtocol_tcf,
	kPGPnetIPProtocol_eigrp,
	kPGPnetIPProtocol_ospfigp,
	kPGPnetIPProtocol_sprite_rpc,
	kPGPnetIPProtocol_larp,
	kPGPnetIPProtocol_mtp,
	kPGPnetIPProtocol_ax25,
	kPGPnetIPProtocol_ipip,
	kPGPnetIPProtocol_micp,
	kPGPnetIPProtocol_scc_sp,
	kPGPnetIPProtocol_etherip,
	kPGPnetIPProtocol_encap,
	kPGPnetIPProtocol_gmtp,
	kPGPnetIPProtocol_ifmp,
	kPGPnetIPProtocol_pnni,
	kPGPnetIPProtocol_pim,
	kPGPnetIPProtocol_aris,
	kPGPnetIPProtocol_scps,
	kPGPnetIPProtocol_qnx,
	kPGPnetIPProtocol_an,
	kPGPnetIPProtocol_ipcomp,
	kPGPnetIPProtocol_snp,
	kPGPnetIPProtocol_compaq_peer,
	kPGPnetIPProtocol_ipx_in_ip,
	kPGPnetIPProtocol_vrrp,

⌨️ 快捷键说明

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