如何在python中为数据包设置IP_TTL?

如何在python中为数据包设置IP_TTL?,python,ssl,scapy,Python,Ssl,Scapy,在下面的代码中。我正在向HTTPS网站发送GET请求并打印响应。是否可以为GET请求数据包设置IP_TTL?我该怎么做 #!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import with_statement from __future__ import print_function try: # This import works from the project directory from sc

在下面的代码中。我正在向HTTPS网站发送GET请求并打印响应。是否可以为GET请求数据包设置IP_TTL?我该怎么做

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import with_statement
from __future__ import print_function
try:
    # This import works from the project directory
    from scapy_ssl_tls.ssl_tls import *
except ImportError:
    # If you installed this package via pip, you just need to execute this
    from scapy.layers.ssl_tls import *

tls_version = TLSVersion.TLS_1_2
ciphers = [TLSCipherSuite.ECDHE_RSA_WITH_AES_128_GCM_SHA256]
# ciphers = [TLSCipherSuite.ECDHE_RSA_WITH_AES_256_CBC_SHA384]
# ciphers = [TLSCipherSuite.RSA_WITH_AES_128_CBC_SHA]
# ciphers = [TLSCipherSuite.RSA_WITH_RC4_128_SHA]
# ciphers = [TLSCipherSuite.DHE_RSA_WITH_AES_128_CBC_SHA]
# ciphers = [TLSCipherSuite.DHE_DSS_WITH_AES_128_CBC_SHA]
extensions = [TLSExtension() / TLSExtECPointsFormat(),
              TLSExtension() / TLSExtSupportedGroups()]


def tls_client(ip):
    with TLSSocket(client=True) as tls_socket:
        try:
            tls_socket.connect(ip)
            print("Connected to server: %s" % (ip,))
        except socket.timeout:
            print("Failed to open connection to server: %s" % (ip,), file=sys.stderr)
        else:
            try:
                server_hello, server_kex = tls_socket.do_handshake(tls_version, ciphers, extensions)
                server_hello.show()
            except TLSProtocolError as tpe:
                print("Got TLS error: %s" % tpe, file=sys.stderr)
                tpe.response.show()
            else:
                resp = tls_socket.do_round_trip(TLSPlaintext(data="GET / HTTP/1.1\r\nHOST: localhost\r\n\r\n"))
                print("Got response from server")
                resp.show()
            finally:
                print(tls_socket.tls_ctx)


if __name__ == "__main__":
    if len(sys.argv) > 2:
        server = (sys.argv[1], int(sys.argv[2]))
    else:
        server = ("google.com", 443)
    tls_client(server)

上面的代码就是通过这个链接获取的

你在别处找过什么吗?当我在谷歌上搜索“PythonIP_TTL”时,我得到了很多点击率。@IrmendeJong所有这些选项都不适合我。即使在发送GET请求之前添加了
tls\u socket.setsockopt(socket.SOL\u IP,socket.IP\u TTL,1)
。我收到了Web服务器的响应可能TLSSocket包装器不支持IP_TTL…?为什么不去Python的源代码和测试,用Python编写:我试图让它在直接UDP上工作,但没有成功。你在其他地方搜索过吗?当我在谷歌上搜索“PythonIP_TTL”时,我得到了很多点击率。@IrmendeJong所有这些选项都不适合我。即使在发送GET请求之前添加了
tls\u socket.setsockopt(socket.SOL\u IP,socket.IP\u TTL,1)
。我收到了Web服务器的响应可能TLSSocket包装器不支持IP_TTL…?为什么不去Python的源代码和测试,用Python编写:我试图让它在直接UDP上工作,但没有成功。