简体   繁体   English

python扭曲-如何获取客户端IP

[英]python twisted - how to get client IP

How can i get the IP address of clients that are connecting to this dns server. 我如何获取连接到该DNS服务器的客户端的IP地址。

from twisted.internet import reactor
from twisted.names import client, dns, server


def main():
    """
    Run the server.
    """
    factory = server.DNSServerFactory(
        clients=[client.Resolver(resolv='/etc/resolv.conf')]
    )

    protocol = dns.DNSDatagramProtocol(controller=factory)

    reactor.listenUDP(10053, protocol)
    reactor.listenTCP(10053, factory)

    reactor.run()


if __name__ == '__main__':
    raise SystemExit(main())

Thank you in advance :P 预先感谢您:P

from twisted.internet import reactor
from twisted.names import client, dns, server

class PrintClientAddressDNSServerFactory(server.DNSServerFactory):
    def buildProtocol(self, addr):
        print("Connection to DNSServerFactory from {}".format(addr))
        return server.DNSServerFactory.buildProtocol(self, addr)

class PrintClientAddressDNSDatagramProtocol(dns.DNSDatagramProtocol):
    def datagramReceived(self, datagram, addr):
        print("Datagram to DNSDatagramProtocol from {}".format(addr))
        return dns.DNSDatagramProtocol.datagramReceived(self, datagram, addr)


def main():
    """
    Run the server.
    """
    factory = PrintClientAddressDNSServerFactory(
        clients=[client.Resolver(resolv='/etc/resolv.conf')]
    )

    protocol = PrintClientAddressDNSDatagramProtocol(controller=factory)

    reactor.listenUDP(10053, protocol)
    reactor.listenTCP(10053, factory)

    reactor.run()


if __name__ == '__main__':
    raise SystemExit(main())

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM