首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >traceroute设置源ip地址

traceroute设置源ip地址
EN

Stack Overflow用户
提问于 2015-11-05 18:14:01
回答 1查看 1.4K关注 0票数 1

我有一个设置,在这个设置中,我的源服务器使用anycast地址连接到网络,因此,每当我连接到的网络中的任何目的地时,我都需要使用源ip。

我目前正在试验替罪羊和使用高级方法,但traceroute在替罪羊有一些强大的功能,我需要使用。traceroute中的traceroute不像sr方法那样接受任何源地址。

有办法绕道吗?或者在替罪羊上面有什么包装::traceroute允许我这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-05 19:06:26

检查 function's code会发现它非常简单,而它的大多数强大特性都与它实例化的TracerouteResult类有关,它实例化了从简单的sr调用中接收到的结果,如当前实现所示:

代码语言:javascript
复制
@conf.commands.register
def traceroute(target, dport=80, minttl=1, maxttl=30, sport=RandShort(), l4 = None, filter=None, timeout=2, verbose=None, **kargs):
    """Instant TCP traceroute
traceroute(target, [maxttl=30,] [dport=80,] [sport=80,] [verbose=conf.verb]) -> None
"""
    if verbose is None:
        verbose = conf.verb
    if filter is None:
        # we only consider ICMP error packets and TCP packets with at
        # least the ACK flag set *and* either the SYN or the RST flag
        # set
        filter="(icmp and (icmp[0]=3 or icmp[0]=4 or icmp[0]=5 or icmp[0]=11 or icmp[0]=12)) or (tcp and (tcp[13] & 0x16 > 0x10))"
    if l4 is None:
        a,b = sr(IP(dst=target, id=RandShort(), ttl=(minttl,maxttl))/TCP(seq=RandInt(),sport=sport, dport=dport),
                 timeout=timeout, filter=filter, verbose=verbose, **kargs)
    else:
        # this should always work
        filter="ip"
        a,b = sr(IP(dst=target, id=RandShort(), ttl=(minttl,maxttl))/l4,
                 timeout=timeout, filter=filter, verbose=verbose, **kargs)

    a = TracerouteResult(a.res)
    if verbose:
        a.show()
    return a,b

因此,您可以使用与这里执行的类似的方式调用sr,但也可以使用源地址,并将结果传递给TracerouteResult类,以便利用其强大的功能。

注意:--一种等价的方法可以应用于 function's code for

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33551863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档