Example #1
0
#!/usr/bin/env python3

import logging
from rdt import socket
from time import time


SERVER_ADDR = '127.0.0.1'
SERVER_PORT = 9999

with open('alice.txt', 'rb') as f:
    DATA = f.read()


if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO, format='[CLIENT %(levelname)s] %(asctime)s: %(message)s')
    client = socket()
    start_time = time()
    client.sendto(DATA, (SERVER_ADDR, SERVER_PORT))
    data, server_addr = client.recvfrom()
    rtt = time() - start_time
    assert data == DATA
    print('Received: ', data)
    print('Round trip time:', rtt)
Example #2
0
import rdt

auth = '00005e00010100e04c68054d0800450002030a04400080060000ac1052a7ac12018dffc4005055fc78f6cbe5dcb050182014ae4c0000504f5354202f6170692f636c69656e742f417574682f436865636b20485454502f312e310d0a486f73743a20706d732e73757374632e6564752e636e0d0a557365722d4167656e743a204d6f7a696c6c612f352e30202857696e646f7773204e542031302e303b2057696e36343b207836343b2072763a36392e3029204765636b6f2f32303130303130312046697265666f782f36392e300d0a4163636570743a202a2f2a0d0a4163636570742d4c616e67756167653a207a682d434e2c7a683b713d302e382c7a682d54573b713d302e372c7a682d484b3b713d302e352c656e2d55533b713d302e332c656e3b713d302e320d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a582d5265717565737465642d576974683a20584d4c48747470526571756573740d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a526566657265723a20687474703a2f2f706d732e73757374632e6564752e636e2f636c69656e742f6e65772f637072696e7450632f637072696e742e68746d6c0d0a436f6f6b69653a204f53455353494f4e49443d61636536656132303934303434363133393864333266323338656636653234390d0a436f6e74656e742d4c656e6774683a20300d0a0d0a'
data = '00005e00010100e04c68054d0800450005c10b32400080060000ac1052a7ac12018dffc40050560312f1cbe5df9350182011b20a0000383432203030303030206e200a30303030333237303232203030303030206e200a30303030333237313635203030303030206e200a30303030333237323336203030303030206e200a30303030333237333037203030303030206e200a30303030333237343534203030303030206e200a30303030333237373531203030303030206e200a30303030333237383933203030303030206e200a30303030333237393530203030303030206e200a30303030333238303037203030303030206e200a30303030333838333732203030303030206e200a30303030333930343734203030303030206e200a30303030333930353737203030303030206e200a30303030333930363238203030303030206e200a30303030333930363739203030303030206e200a30303030333930373330203030303030206e200a30303030333930373832203030303030206e200a30303030333930383333203030303030206e200a30303030333930383834203030303030206e200a30303030333931303432203030303030206e200a30303030333931303933203030303030206e200a30303030333931313434203030303030206e200a30303030333931313935203030303030206e200a30303030333931323436203030303030206e200a30303030333931323937203030303030206e200a30303030333931333438203030303030206e200a30303030333931353034203030303030206e200a30303030333931353535203030303030206e200a30303030333931363036203030303030206e200a30303030333931363537203030303030206e200a30303030333931383135203030303030206e200a30303030333931383636203030303030206e200a30303030333931393137203030303030206e200a747261696c65720a3c3c2f53697a6520323030372f526f6f7420383932203020522f496e666f20383834203020522f4944205b3c66323065613231326238383638336532303932656134333636363864613136663e3c30643533336535613731366561343365666666376365363263613636393466373e5d3e3e0a2569546578742d352e352e340a7374617274787265660a3339313936380a2525454f460a0d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3139313639313537323431313437380d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d226477436f6c6f72220d0a0d0a310d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3139313639313537323431313437380d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d22647750617065724964220d0a0d0a390d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3139313639313537323431313437380d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d2264774475706c6578220d0a0d0a310d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3139313639313537323431313437380d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d226477436f70696573220d0a0d0a310d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3139313639313537323431313437380d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d224261636b55524c220d0a0d0a687474703a2f2f706d732e73757374632e6564752e636e2f636c69656e742f6e65772f637072696e7450632f7072696e74446f632e68746d6c3f743d313537313135303539303836330d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3139313639313537323431313437382d2d0d0a'

auth_check = '00005e00010100e04c68054d08004500021f0c65400080060000ac1052a7ac12018dc00300502f9f7e2260b6e86550180401ae680000504f5354202f6170692f636c69656e742f417574682f436865636b20485454502f312e310d0a486f73743a20706d732e73757374632e6564752e636e0d0a557365722d4167656e743a204d6f7a696c6c612f352e30202857696e646f7773204e542031302e303b2057696e36343b207836343b2072763a36392e3029204765636b6f2f32303130303130312046697265666f782f36392e300d0a4163636570743a202a2f2a0d0a4163636570742d4c616e67756167653a207a682d434e2c7a683b713d302e382c7a682d54573b713d302e372c7a682d484b3b713d302e352c656e2d55533b713d302e332c656e3b713d302e320d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a582d5265717565737465642d576974683a20584d4c48747470526571756573740d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a526566657265723a20687474703a2f2f706d732e73757374632e6564752e636e2f636c69656e742f6e65772f637072696e7450632f7072696e74446f632e68746d6c0d0a436f6f6b69653a204f53455353494f4e49443d61636536656132303934303434363133393864333266323338656636653234390d0a43616368652d436f6e74726f6c3a206d61782d6167653d300d0a436f6e74656e742d4c656e6774683a20300d0a0d0a'
print_job = '00005e00010100e04c68054d0800450002100c66400080060000ac1052a7ac12018dc00100502344fd6db677a1a150182011ae590000474554202f6170692f636c69656e742f5072696e744a6f622f4765743f74696d657374616d703d302e3634393230363137313836343338373620485454502f312e310d0a486f73743a20706d732e73757374632e6564752e636e0d0a557365722d4167656e743a204d6f7a696c6c612f352e30202857696e646f7773204e542031302e303b2057696e36343b207836343b2072763a36392e3029204765636b6f2f32303130303130312046697265666f782f36392e300d0a4163636570743a202a2f2a0d0a4163636570742d4c616e67756167653a207a682d434e2c7a683b713d302e382c7a682d54573b713d302e372c7a682d484b3b713d302e352c656e2d55533b713d302e332c656e3b713d302e320d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a582d5265717565737465642d576974683a20584d4c48747470526571756573740d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a526566657265723a20687474703a2f2f706d732e73757374632e6564752e636e2f636c69656e742f6e65772f637072696e7450632f7072696e74446f632e68746d6c0d0a436f6f6b69653a204f53455353494f4e49443d61636536656132303934303434363133393864333266323338656636653234390d0a0d0a'
if __name__ == "__main__":
    try:
        sock = rdt.socket(rdt.AF_INET, rdt.SOCK_STREAM)
        sock.connect(('172.18.1.141', 80))
        sock.send(bytes.fromhex(auth_check))
        data_recv = sock.recv(10000)
        print(data_recv)
        sock.send(bytes.fromhex(print_job))
        data_recv = sock.recv(10000)
        print(data_recv)
    except KeyboardInterrupt:
        exit()
Example #3
0
from rdt import socket

if __name__ == "__main__":
    try:
        server_socket = socket()
        server_socket.bind(('127.0.0.1', 63000))
        server_socket.accpet()
        while True:
            data = server_socket.recv()
            print("receive", data)
            server_socket.send(data)
    except KeyboardInterrupt:
        pass
from rdt import socket

if __name__ == "__main__":
    client_socket = socket()
    client_socket.bind(('', 12345))
    client_socket.connect(('127.0.0.1', 63000))

    #################
    # Original Test #
    #################
    # MESSAGE = "TEST_MESSAGE_中文_TEST_MESSAGE"
    # client_socket.send(MESSAGE)
    # data = client_socket.recv()
    # assert data == MESSAGE

    #########################
    # Manually sending test #
    #########################
    while True:
        MESSAGE = input('input:')
        client_socket.send(MESSAGE)
        data = client_socket.recv()
        print("server:", data)

    ###################
    # large text test #
    ###################
    # fp = open('C:\\Users\\ASUS\\desktop\\alice.txt', 'r')
    # MESSAGE = fp.read()
    # fp.close()
    # client_socket.send(MESSAGE)
Example #5
0
                    dns_answer.handle(foreign_name_server_address)  # 保存记录
        elif self.QR == 1:
            for answer in self.RRs.values():
                rr = RR(name=answer.NAME,
                        a_type=answer.TYPE,
                        a_class=answer.CLASS,
                        data=answer.DATA,
                        due_date=time.time() + answer.A_ttl,
                        name_original=answer.NAME_Original)
                for old_rr in cache:
                    if old_rr.NAME_Original == rr.NAME_Original and rr.DATA == old_rr.DATA:
                        cache.remove(old_rr)  # 将冲突记录删除
                cache.append(rr)

    def __str__(self):
        return str(self.__dict__)


if __name__ == "__main__":
    cache = []
    try:
        severSocket = rdt.socket(rdt.AF_INET, rdt.SOCK_DGRAM)
        clientSocket = rdt.socket(rdt.AF_INET, rdt.SOCK_DGRAM)
        severSocket.bind(('127.0.0.1', 53))  # 监听端口53
        while True:
            message, clientAddress = severSocket.recvfrom(2048)
            dns_solve = dnsSolve(message.hex())
            dns_solve.handle(clientAddress)
    except KeyboardInterrupt:
        exit()