def __init__(self, in_code, seq_number, ack_number, d_port, s_port, win_size=0, data=b'', fin=False, syn=False): if in_code == 4: # ack packet Header.__init__(self, seq_number, s_port, d_port, ack_number, ack=True, win_size=win_size, syn=syn) self.data = data if in_code == 3: # data packet Header.__init__(self, seq_number, s_port, d_port, ack_number, fin=fin) self.data = bitstring.BitArray(data)
def __init__(self, params=None): Header.__init__(self, params) self.name = "Accept" self.max_types = 10 # Allow this many types self.valid_media_range = { "application": [ "javascript", "json", "x-www-form-urlencoded", "xml", "zip", "pdf", "sql", "graphsql", "ld+json", "msword", "vnd.openxmlformats-officedocument.wordprocessingml.document", "vnd.ms-excel", "vnd.openxmlformats-officedocument.spreadsheetml.sheet", "vnd.ms-powerpoint", "vnd.openxmlformats-officedocument.presentationml.presentation", "vnd.oasis.opendocument.text", "*" ], "audio": ["mpeg", "ogg", "*"], "multipart": ["form-data", "*"], "text": ["css", "html", "csv", "plain", "*"], "image": ["png", "jpeg", "gif", "*"], "*": ["*"] } self.valid_param_range = { "q": [str(float(i) / 10) for i in range(11)], "charset": ["UTF-8"] } self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Accept-Control-Request-Headers" self.max_headers = 10 self.headers = [ "Accept", "Accept-Charset", "Accept-Datetime", "Accept-Encoding", "Accept-Language", "Access-Control-Request-Method", "Access-Control-Request-Headers" ] self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Accept-Encoding" self.max_types = 10 # Allow this many types self.valid_encoding_values = [ "*", "aes128gcm", "br", "compress", "deflate", "exi", "gzip", "identity", "pack200-gzip", "x-compress", "x-gzip", "z-std", "bzip2", "lzma", "peerdist", "sdch", "xpress", "xz" ] self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Accept-Language" self.max_types = 10 # Allow this many types self.valid_prefix_values = [ "ar", "ms", "zh", "lv", "sw", "uz", "fr", "de", "be", "tw", "pt", "gl", "oc", "hy", "az", "ba", "kk", "ky", "tk", "tt", "en", "sa", "eu", "sl", "sr", "nn", "eo", "bg", "rm", "kw", "pl", "ru", "el", "vo", "es", "ca" ] self.valid_subtag_values = [ "aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", "ay", "az", "ba", "be", "bg", "bh", "bi", "bm", "bn", "bo", "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cu", "cv", "cy", "da", "de", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", "gn", "gu", "gv", "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", "ia", "id", "ie", "ig", "ii", "ik", "in", "io", "is", "it", "iu", "iw", "ja", "ji", "jv", "jw", "ka", "kg", "ki", "kj", "kk", "kl", "km", "kn", "ko", "kr", "ks", "ku", "kv", "kw", "ky", "la", "lb", "lg", "li", "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", "ml", "mn", "mo", "mr", "ms", "mt", "my", "na", "nb", "nd", "ne", "ng", "nl", "nn", "no", "nr", "nv", "ny", "oc", "oj", "om", "or", "os", "pa", "pi", "pl", "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "sa", "sc", "sd", "se", "sg", "sh", "si", "sk", "sl", "sm", "sn", "so", "sq", "sr", "ss", "st", "su", "sv", "sw", "ta", "te", "tg", "th", "ti", "tk", "tl", "tn", "to", "tr", "ts", "tt", "tw", "ty", "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "wo", "xh", "yi", "yo", "za", "zh", "zu", "AA", "AC", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CP", "CR", "CS", "CU", "CV", "CW", "CX", "CY", "CZ", "DD", "DE", "DG", "DJ", "DK", "DM", "DO", "DZ", "EA", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "EU", "EZ", "FI", "FJ", "FK", "FM", "FO", "FR", "FX", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "IC", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NT", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SU", "SV", "SX", "SY", "SZ", "TA", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "UN", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YD", "YE", "YT", "YU", "ZA", "ZM", "ZR", "ZW", "ZZ" ] self.value = self.generate_valid_value()
def __init__(self, code, filename, seq_num, s_port, d_port): if code == 1: Header.__init__(self, seq_num, s_port, d_port, 0, syn=True) else: Header.__init__(self, seq_num, s_port, d_port, 0, write=True, syn=True) self.data = bitstring.Bits(filename.encode('utf-8'))
def __init__(self, err_code, d_port, s_port, seq_num, ack_num=0, in_message=''): # Since this is just for errors, only one op code is available Header.__init__(self, seq_num, s_port, d_port, fin=True, ack_num=ack_num) # Implementing the error message # 0 Not defined, see error message (if any). # 1 File not found. # 2 Access violation. # 3 Disk full or allocation exceeded. # 4 Illegal TFTP operation. # 5 Unknown transfer ID. # 6 File already exists. # 7 No such user. if err_code == 0: message = in_message elif err_code == 1: message = 'File not found.' elif err_code == 3: message = 'Disk full or allocation exceeded.' elif err_code == 5: message = "Unknown transfer ID." elif err_code == 6: message = "File already exists." else: message = "Unknown Error" self.error = bitstring.BitArray(message.encode('utf-8')) self.error_code = err_code
def __init__(self, params=None): Header.__init__(self, params) self.max_size = 10 self.name = "Forwarded" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.max_tags = 3 self.max_tag_size = 10 self.name = "If-Match" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Content-Length" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "If-Unmodified-Since" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.max_size = 20 self.name = "Host" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Accept-Control-Request-Method" self.methods = ["GET", "HEAD", "POST", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE"] self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.max_size = 30 self.name = "Referer" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Upgrade" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Connection" self.maximum = 10 self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Proxy-Authorization" self.auth = Authorization() self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Accept-Charset" self.max_types = 10 # Allow this many types self.valid_charset_values = [ "US-ASCII", "ISO_8859-1:1987", "ISO_8859-2:1987", "ISO_8859-3:1988", "ISO_8859-4:1988", "ISO_8859-5:1988", "ISO_8859-6:1987", "ISO_8859-7:1987", "ISO_8859-8:1988", "ISO_8859-9:1989", "ISO-8859-10", "ISO_6937-2-add", "JIS_X0201", "JIS_Encoding", "Shift_JIS", "Extended_UNIX_Code_Packed_Format_for_Japanese", "Extended_UNIX_Code_Fixed_Width_for_Japanese", "BS_4730", "SEN_850200_C", "IT", "ES", "DIN_66003", "NS_4551-1", "NF_Z_62-010", "ISO-10646-UTF-1", "ISO_646.basic:1983", "INVARIANT", "ISO_646.irv:1983", "NATS-SEFI", "NATS-SEFI-ADD", "NATS-DANO", "NATS-DANO-ADD", "SEN_850200_B", "KS_C_5601-1987", "ISO-2022-KR", "EUC-KR", "ISO-2022-JP", "ISO-2022-JP-2", "JIS_C6220-1969-jp", "JIS_C6220-1969-ro", "PT", "greek7-old", "latin-greek", "NF_Z_62-010_(1973)", "Latin-greek-1", "ISO_5427", "JIS_C6226-1978", "BS_viewdata", "INIS", "INIS-8", "INIS-cyrillic", "ISO_5427:1981", "ISO_5428:1980", "GB_1988-80", "GB_2312-80", "NS_4551-2", "videotex-suppl", "PT2", "ES2", "MSZ_7795.3", "JIS_C6226-1983", "greek7", "ASMO_449", "iso-ir-90", "JIS_C6229-1984-a", "JIS_C6229-1984-b", "JIS_C6229-1984-b-add", "JIS_C6229-1984-hand", "JIS_C6229-1984-hand-add", "JIS_C6229-1984-kana", "ISO_2033-1983", "ANSI_X3.110-1983", "T.61-7bit", "T.61-8bit", "ECMA-cyrillic", "CSA_Z243.4-1985-1", "CSA_Z243.4-1985-2", "CSA_Z243.4-1985-gr", "ISO_8859-6-E", "ISO_8859-6-I", "T.101-G2", "ISO_8859-8-E", "ISO_8859-8-I", "CSN_369103", "JUS_I.B1.002", "IEC_P27-1", "JUS_I.B1.003-serb", "JUS_I.B1.003-mac", "greek-ccitt", "NC_NC00-10:81", "ISO_6937-2-25", "GOST_19768-74", "ISO_8859-supp", "ISO_10367-box", "latin-lap", "JIS_X0212-1990", "DS_2089", "us-dk", "dk-us", "KSC5636", "UNICODE-1-1-UTF-7", "ISO-2022-CN", "ISO-2022-CN-EXT", "UTF-8", "ISO-8859-13", "ISO-8859-14", "ISO-8859-15", "ISO-8859-16", "GBK", "GB18030", "OSD_EBCDIC_DF04_15", "OSD_EBCDIC_DF03_IRV", "OSD_EBCDIC_DF04_1", "ISO-11548-1", "KZ-1048", "ISO-10646-UCS-2", "ISO-10646-UCS-4", "ISO-10646-UCS-Basic", "ISO-10646-Unicode-Latin1", "ISO-10646-J-1", "ISO-Unicode-IBM-1261", "ISO-Unicode-IBM-1268", "ISO-Unicode-IBM-1276", "ISO-Unicode-IBM-1264", "ISO-Unicode-IBM-1265", "UNICODE-1-1", "SCSU", "UTF-7", "UTF-16BE", "UTF-16LE", "UTF-16", "CESU-8", "UTF-32", "UTF-32BE", "UTF-32LE", "BOCU-1", "ISO-8859-1-Windows-3.0-Latin-1", "ISO-8859-1-Windows-3.1-Latin-1", "ISO-8859-2-Windows-Latin-2", "ISO-8859-9-Windows-Latin-5", "hp-roman8", "Adobe-Standard-Encoding", "Ventura-US", "Ventura-International", "DEC-MCS", "IBM850", "PC8-Danish-Norwegian", "IBM862", "PC8-Turkish", "IBM-Symbols", "IBM-Thai", "HP-Legal", "HP-Pi-font", "HP-Math8", "Adobe-Symbol-Encoding", "HP-DeskTop", "Ventura-Math", "Microsoft-Publishing", "Windows-31J", "GB2312", "Big5", "macintosh", "IBM037", "IBM038", "IBM273", "IBM274", "IBM275", "IBM277", "IBM278", "IBM280", "IBM281", "IBM284", "IBM285", "IBM290", "IBM297", "IBM420", "IBM423", "IBM424", "IBM437", "IBM500", "IBM851", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM868", "IBM869", "IBM870", "IBM871", "IBM880", "IBM891", "IBM903", "IBM904", "IBM905", "IBM918", "IBM1026", "EBCDIC-AT-DE", "EBCDIC-AT-DE-A", "EBCDIC-CA-FR", "EBCDIC-DK-NO", "EBCDIC-DK-NO-A", "EBCDIC-FI-SE", "EBCDIC-FI-SE-A", "EBCDIC-FR", "EBCDIC-IT", "EBCDIC-PT", "EBCDIC-ES", "EBCDIC-ES-A", "EBCDIC-ES-S", "EBCDIC-UK", "EBCDIC-US", "UNKNOWN-8BIT", "MNEMONIC", "MNEM", "VISCII", "VIQR", "KOI8-R", "HZ-GB-2312", "IBM866", "IBM775", "KOI8-U", "IBM00858", "IBM00924", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "Big5-HKSCS", "IBM1047", "PTCP154", "Amiga-1251", "KOI7-switched", "BRF", "TSCII", "CP51932", "windows-874", "windows-1250", "windows-1251", "windows-1252", "windows-1253", "windows-1254", "windows-1255", "windows-1256", "windows-1257", "windows-1258", "TIS-620", "CP50220" ] self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Authorization" self.max_length = 20 self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.name = "Cache-Control" self.value = self.generate_valid_value()
def __init__(self, params=None): Header.__init__(self, params) self.max_chars = 20 self.name = "Cookie" self.value = self.generate_valid_value()