예제 #1
0
 def displayfunction(x):
     out.write(args.csv_separator.join(utils.fields2csv_head(fields)))
     out.write('\n')
     for h in x:
         displayhost_csv(fields,
                         args.csv_separator,
                         args.csv_na_str,
                         h,
                         out=out)
예제 #2
0
def displayfunction_csv(cur: Iterable[NmapHost], arg: str, csv_sep: str,
                        csv_na_str: str, add_infos: bool) -> None:
    fields: Optional[OrderedDict] = {
        "ports":
        OrderedDict([
            ("addr", True),
            ("ports", OrderedDict([("port", str), ("state_state", True)])),
        ]),
        "hops":
        OrderedDict([
            ("addr", True),
            (
                "traces",
                OrderedDict([(
                    "hops",
                    OrderedDict([
                        ("ipaddr", True),
                        ("ttl", str),
                        (
                            "rtt",
                            lambda x: (csv_na_str if x == "--" else str(x)),
                        ),
                    ]),
                )]),
            ),
        ]),
        "rtt":
        OrderedDict([
            ("addr", True),
            (
                "traces",
                OrderedDict([(
                    "hops",
                    OrderedDict([
                        (
                            "rtt",
                            lambda x: (csv_na_str if x == "--" else str(x)),
                        ),
                    ]),
                )]),
            ),
        ]),
    }.get(arg)
    if fields is None:
        # active_parser.error("Invalid choice for --csv.")
        sys.stderr.write("Invalid choice for --csv.\n")
        return
    if add_infos:
        fields["infos"] = OrderedDict([
            ("country_code", True),
            ("city", True),
            ("as_num", str),
        ])
    sys.stdout.write(csv_sep.join(utils.fields2csv_head(fields)))
    sys.stdout.write("\n")
    for h in cur:
        _displayhost_csv(fields, csv_sep, csv_na_str, h, out=sys.stdout)
예제 #3
0
def displayfunction_csv(cur, arg, csv_sep, csv_na_str, add_infos):
    fields = {
        "ports":
        OrderedDict([
            ["addr", True],
            ["ports",
             OrderedDict([["port", str], ["state_state", True]])],
        ]),
        "hops":
        OrderedDict([
            ["addr", True],
            [
                "traces",
                OrderedDict([[
                    "hops",
                    OrderedDict([
                        ["ipaddr", True],
                        ["ttl", str],
                        [
                            "rtt",
                            lambda x: (csv_na_str if x == "--" else str(x)),
                        ],
                    ]),
                ]]),
            ],
        ]),
        "rtt":
        OrderedDict([
            ["addr", True],
            [
                "traces",
                OrderedDict([[
                    "hops",
                    OrderedDict([
                        [
                            "rtt",
                            lambda x: (csv_na_str if x == "--" else str(x)),
                        ],
                    ]),
                ]]),
            ],
        ]),
    }.get(arg)
    if fields is None:
        # active_parser.error("Invalid choice for --csv.")
        sys.stderr.write("Invalid choice for --csv.\n")
        return
    if add_infos:
        fields["infos"] = OrderedDict([
            ["country_code", True],
            ["city", True],
            ["as_num", str],
        ])
    sys.stdout.write(csv_sep.join(utils.fields2csv_head(fields)))
    sys.stdout.write("\n")
    for h in cur:
        _displayhost_csv(fields, csv_sep, csv_na_str, h, out=sys.stdout)
예제 #4
0
def displayfunction_csv(cur, arg, csv_sep, csv_na_str, add_infos):
    fields = {
        "ports": OrderedDict([
            ["addr", utils.int2ip],
            ["ports", OrderedDict([
                ["port", str],
                ["state_state", True]])]]),
        "hops": OrderedDict([
            ["addr", utils.int2ip],
            ["traces", OrderedDict([
                ["hops", OrderedDict([
                    ["ipaddr", utils.int2ip],
                    ["ttl", str],
                    ["rtt", lambda x: (csv_na_str if x == '--'
                                       else str(x))],
                ])]
            ])]
        ]),
        "rtt": OrderedDict([
            ["addr", utils.int2ip],
            ["traces", OrderedDict([
                ["hops", OrderedDict([
                    ["rtt", lambda x: (csv_na_str if x == '--'
                                       else str(x))],
                ])]
            ])]
        ]),
    }.get(arg)
    if fields is None:
        # active_parser.error("Invalid choice for --csv.")
        sys.stderr.write("Invalid choice for --csv.\n")
        return
    if add_infos:
        fields['infos'] = OrderedDict([
            ["country_code", True],
            ["city", True],
            ["as_num", str],
        ])
    sys.stdout.write(csv_sep.join(utils.fields2csv_head(fields)))
    sys.stdout.write('\n')
    for h in cur:
        _displayhost_csv(fields, csv_sep, csv_na_str, h, out=sys.stdout)
예제 #5
0
파일: scancli.py 프로젝트: Gowabby/ivre
 def displayfunction(x):
     out.write(args.csv_separator.join(utils.fields2csv_head(fields)))
     out.write('\n')
     for h in x:
         displayhost_csv(fields, args.csv_separator, args.csv_na_str,
                         h, out=out)