📄 modusox.bas
字号:
Attribute VB_Name = "ModSocks"
'****************************************************************************
'人人为我,我为人人
'枕善居汉化收藏整理
'发布日期:2006/12/23
'描 述:非常专业的防火墙源代码
'网 站:http://www.Mndsoft.com/ (VB6源码博客)
'网 站:http://www.VbDnet.com/ (VB.NET源码博客,主要基于.NET2005)
'e-mail :Mndsoft@163.com
'e-mail :Mndsoft@126.com
'OICQ :88382850
' 如果您有新的好的代码别忘记给枕善居哦!
'****************************************************************************
Option Explicit
'********************************************************************************
'MSocketSupport module
'Copyright 2002 by Oleg Gdalevich
'Visual Basic Internet Programming website (http://www.vbip.com)
'********************************************************************************
'This module contains API declarations and helper functions for the CSocket class
'********************************************************************************
'Version: 1.0.12 Modified: 17-OCT-2002
'********************************************************************************
'To get latest version of this code please visit the following web page:
'http://www.vbip.com/winsock-api/csocket-class/csocket-class-01.asp
'********************************************************************************
Public Const INADDR_NONE As Long = &HFFFF
Public Const SOCKET_ERROR As Long = -1
Public Const INVALID_SOCKET As Long = -1
Public Const INADDR_ANY As Long = &H0
Public Const FD_SETSIZE As Long = 64
Public Const MAXGETHOSTSTRUCT As Long = 1024
Public Const SD_RECEIVE As Long = &H0
Public Const SD_SEND As Long = &H1
Public Const SD_BOTH As Long = &H2
Public Const MSG_OOB As Long = &H1 '/* process out-of-band data */
Public Const MSG_PEEK As Long = &H2 '/* peek at incoming message */
Public Const MSG_DONTROUTE As Long = &H4 '/* send without using routing tables */
Public Const MSG_PARTIAL As Long = &H8000 '/* partial send or recv for message xport */
Public Const FD_READ As Long = &H1&
Public Const FD_WRITE As Long = &H2&
Public Const FD_OOB As Long = &H4&
Public Const FD_ACCEPT As Long = &H8&
Public Const FD_CONNECT As Long = &H10&
Public Const FD_CLOSE As Long = &H20&
Public Const SOL_SOCKET As Long = 65535
Public Const SO_SNDBUF As Long = &H1001 'Send buffer size
Public Const SO_RCVBUF As Long = &H1002 'Receive buffer size
Public Const SO_SNDLOWAT As Long = &H1003 'Send low-water mark
Public Const SO_RCVLOWAT As Long = &H1004 'Receive low-water mark
Public Const SO_SNDTIMEO As Long = &H1005 'Send timeout
Public Const SO_RCVTIMEO As Long = &H1006 'Receive timeout
Public Const SO_ERROR As Long = &H1007 'Get error status and clear
Public Const SO_TYPE As Long = &H1008 'Get socket type
Public Const SO_DEBUG As Long = &H1& ' Turn on debugging info recording
Public Const SO_ACCEPTCONN As Long = &H2& ' Socket has had listen() - READ-ONLY.
Public Const SO_REUSEADDR As Long = &H4& ' Allow local address reuse.
Public Const SO_KEEPALIVE As Long = &H8& ' Keep connections alive.
Public Const SO_DONTROUTE As Long = &H10& ' Just use interface addresses.
Public Const SO_BROADCAST As Long = &H20& ' Permit sending of broadcast msgs.
Public Const SO_USELOOPBACK As Long = &H40& ' Bypass hardware when possible.
Public Const SO_LINGER As Long = &H80& ' Linger on close if data present.
Public Const SO_OOBINLINE As Long = &H100& ' Leave received OOB data in line.
Public Const SO_DONTLINGER As Long = Not SO_LINGER
Public Const SO_EXCLUSIVEADDRUSE As Long = Not SO_REUSEADDR ' Disallow local address reuse.
Public Const WSADESCRIPTION_LEN As Long = 257
Public Const WSASYS_STATUS_LEN As Long = 129
Public Const SIO_GET_INTERFACE_LIST As Long = &H4004747F
Public Const TCP_NODELAY As Long = &H1
Public Const TCP_BSDURGENT As Long = &H7000
Public Type WSAData
wVersion As Integer
wHighVersion As Integer
szDescription As String * WSADESCRIPTION_LEN
szSystemStatus As String * WSASYS_STATUS_LEN
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type
Public Type sockaddr_in
sin_family As Integer
sin_port As Integer
sin_addr As Long
sin_zero(1 To 8) As Byte
End Type
Public Type fd_set
fd_count As Long '// how many are SET?
fd_array(1 To FD_SETSIZE) As Long '// an array of SOCKETs
End Type
Public Type IPHeader
ip_verlen As Byte 'IP version number and header length in 32bit words (4 bits each)
ip_tos As Byte 'Type Of Service ID (1 octet)
ip_totallength As Integer 'Size of Datagram (header + data) in octets
ip_id As Integer 'IP-ID (16 bits)
ip_offset As Integer 'fragmentation flags (3bit) and fragmet offset (13 bits)
ip_ttl As Byte 'datagram Time To Live (in network hops)
ip_protocol As Byte 'Transport protocol type (byte)
ip_checksum As Integer 'Header Checksum (16 bits)
ip_srcaddr As Long 'Source IP Address (32 bits)
ip_destaddr As Long 'Destination IP Address (32 bits)
End Type
Public Type sockaddr_gen
AddressIn As sockaddr_in
filler(0 To 7) As Byte
End Type
Public Type INTERFACE_INFO
iiFlags As Long 'Interface flags
iiAddress As sockaddr_gen 'Interface address
iiBroadcastAddress As sockaddr_gen 'Broadcast address
iiNetmask As sockaddr_gen 'Network mask
End Type
Public Type INTERFACEINFO
iInfo(0 To 7) As INTERFACE_INFO
End Type
Public Const WSABASEERR As Long = 10000
Public Const WSAEINTR As Long = (WSABASEERR + 4)
Public Const WSAEBADF As Long = (WSABASEERR + 9)
Public Const WSAEACCES As Long = (WSABASEERR + 13)
Public Const WSAEFAULT As Long = (WSABASEERR + 14)
Public Const WSAEINVAL As Long = (WSABASEERR + 22)
Public Const WSAEMFILE As Long = (WSABASEERR + 24)
Public Const WSAEWOULDBLOCK As Long = (WSABASEERR + 35)
Public Const WSAEINPROGRESS As Long = (WSABASEERR + 36)
Public Const WSAEALREADY As Long = (WSABASEERR + 37)
Public Const WSAENOTSOCK As Long = (WSABASEERR + 38)
Public Const WSAEDESTADDRREQ As Long = (WSABASEERR + 39)
Public Const WSAEMSGSIZE As Long = (WSABASEERR + 40)
Public Const WSAEPROTOTYPE As Long = (WSABASEERR + 41)
Public Const WSAENOPROTOOPT As Long = (WSABASEERR + 42)
Public Const WSAEPROTONOSUPPORT As Long = (WSABASEERR + 43)
Public Const WSAESOCKTNOSUPPORT As Long = (WSABASEERR + 44)
Public Const WSAEOPNOTSUPP As Long = (WSABASEERR + 45)
Public Const WSAEPFNOSUPPORT As Long = (WSABASEERR + 46)
Public Const WSAEAFNOSUPPORT As Long = (WSABASEERR + 47)
Public Const WSAEADDRINUSE As Long = (WSABASEERR + 48)
Public Const WSAEADDRNOTAVAIL As Long = (WSABASEERR + 49)
Public Const WSAENETDOWN As Long = (WSABASEERR + 50)
Public Const WSAENETUNREACH As Long = (WSABASEERR + 51)
Public Const WSAENETRESET As Long = (WSABASEERR + 52)
Public Const WSAECONNABORTED As Long = (WSABASEERR + 53)
Public Const WSAECONNRESET As Long = (WSABASEERR + 54)
Public Const WSAENOBUFS As Long = (WSABASEERR + 55)
Public Const WSAEISCONN As Long = (WSABASEERR + 56)
Public Const WSAENOTCONN As Long = (WSABASEERR + 57)
Public Const WSAESHUTDOWN As Long = (WSABASEERR + 58)
Public Const WSAETOOMANYREFS As Long = (WSABASEERR + 59)
Public Const WSAETIMEDOUT As Long = (WSABASEERR + 60)
Public Const WSAECONNREFUSED As Long = (WSABASEERR + 61)
Public Const WSAELOOP As Long = (WSABASEERR + 62)
Public Const WSAENAMETOOLONG As Long = (WSABASEERR + 63)
Public Const WSAEHOSTDOWN As Long = (WSABASEERR + 64)
Public Const WSAEHOSTUNREACH As Long = (WSABASEERR + 65)
Public Const WSAENOTEMPTY As Long = (WSABASEERR + 66)
Public Const WSAEPROCLIM As Long = (WSABASEERR + 67)
Public Const WSAEUSERS As Long = (WSABASEERR + 68)
Public Const WSAEDQUOT As Long = (WSABASEERR + 69)
Public Const WSAESTALE As Long = (WSABASEERR + 70)
Public Const WSAEREMOTE As Long = (WSABASEERR + 71)
Public Const WSASYSNOTREADY As Long = (WSABASEERR + 91)
Public Const WSAVERNOTSUPPORTED As Long = (WSABASEERR + 92)
Public Const WSANOTINITIALISED As Long = (WSABASEERR + 93)
Public Const WSAEDISCON As Long = (WSABASEERR + 101)
Public Const WSAENOMORE As Long = (WSABASEERR + 102)
Public Const WSAECANCELLED As Long = (WSABASEERR + 103)
Public Const WSAEINVALIDPROCTABLE As Long = (WSABASEERR + 104)
Public Const WSAEINVALIDPROVIDER As Long = (WSABASEERR + 105)
Public Const WSAEPROVIDERFAILEDINIT As Long = (WSABASEERR + 106)
Public Const WSASYSCALLFAILURE As Long = (WSABASEERR + 107)
Public Const WSASERVICE_NOT_FOUND As Long = (WSABASEERR + 108)
Public Const WSATYPE_NOT_FOUND As Long = (WSABASEERR + 109)
Public Const WSA_E_NO_MORE As Long = (WSABASEERR + 110)
Public Const WSA_E_CANCELLED As Long = (WSABASEERR + 111)
Public Const WSAEREFUSED As Long = (WSABASEERR + 112)
Public Const WSAHOST_NOT_FOUND As Long = (WSABASEERR + 1001)
Public Const WSATRY_AGAIN As Long = (WSABASEERR + 1002)
Public Const WSANO_RECOVERY As Long = (WSABASEERR + 1003)
Public Const WSANO_DATA As Long = (WSABASEERR + 1004)
Public Const SIO_RCVALL As Long = &H98000001
Public Enum ServicePort
IPPORT_ECHO = 7
IPPORT_DISCARD = 9
IPPORT_SYSTAT = 11
IPPORT_DAYTIME = 13
IPPORT_NETSTAT = 15
IPPORT_FTP = 21
IPPORT_TELNET = 23
IPPORT_SMTP = 25
IPPORT_TIMESERVER = 37
IPPORT_NAMESERVER = 42
IPPORT_WHOIS = 43
IPPORT_MTP = 57
End Enum
Public Enum SocketType
SOCK_STREAM = 1 ' /* stream socket */
SOCK_DGRAM = 2 ' /* datagram socket */
SOCK_RAW = 3 ' /* raw-protocol interface */
SOCK_RDM = 4 ' /* reliably-delivered message */
SOCK_SEQPACKET = 5 ' /* sequenced packet stream */
End Enum
Public Enum AddressFamily
AF_UNSPEC = 0 '/* unspecified */
AF_UNIX = 1 '/* local to host (pipes, portals) */
AF_INET = 2 '/* internetwork: UDP, TCP, etc. */
AF_IMPLINK = 3 '/* arpanet imp addresses */
AF_PUP = 4 '/* pup protocols: e.g. BSP */
AF_CHAOS = 5 '/* mit CHAOS protocols */
AF_NS = 6 '/* XEROX NS protocols */
AF_IPX = AF_NS '/* IPX protocols: IPX, SPX, etc. */
AF_ISO = 7 '/* ISO protocols */
AF_OSI = AF_ISO '/* OSI is ISO */
AF_ECMA = 8 '/* european computer manufacturers */
AF_DATAKIT = 9 '/* datakit protocols */
AF_CCITT = 10 '/* CCITT protocols, X.25 etc */
AF_SNA = 11 '/* IBM SNA */
AF_DECnet = 12 '/* DECnet */
AF_DLI = 13 '/* Direct data link interface */
AF_LAT = 14 '/* LAT */
AF_HYLINK = 15 '/* NSC Hyperchannel */
AF_APPLETALK = 16 '/* AppleTalk */
AF_NETBIOS = 17 '/* NetBios-style addresses */
AF_VOICEVIEW = 18 '/* VoiceView */
AF_FIREFOX = 19 '/* Protocols from Firefox */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -