【问题标题】:I need help to modify pnscan我需要帮助来修改 pnscan
【发布时间】:2018-12-22 21:25:26
【问题描述】:

他目前的节目:

$ pnscan -s somehost.com 22

50.87.248.227   : box1227.bluehost.com                     :    22 : TXT : SSH-2.0-OpenSSH_5.3\r\n

我正在尝试修改 pnscan 以显示如下结果:

$ pnscan -s somehost.com 22

50.87.248.227   : somehost.com                     :    22 : TXT : SSH-2.0-OpenSSH_5.3\r\n

这里是代码 https://github.com/ptrrkssn/pnscan/blob/master/pnscan.c

if (pr_sym)
{
    hep = gethostbyaddr((const char *) &in, sizeof(in), AF_INET);
    fprintf(fp, "%-15s : %-40s : %5d", host,
            inet_ntoa(in), hep ? hep->h_name : "(unknown)", port);
}
else
    fprintf(fp, "%-15s : %5d", inet_ntoa(in), port);
}

我在这里尝试更改上面的 fprint,但它不起作用,因为 argv[i] 是在这些 fprint 之后声明的,我想? 有人可以帮忙吗?

【问题讨论】:

    标签: c bash perl ssh


    【解决方案1】:

    是的,你说得对,那就是改变的地方。但要做到这一点很棘手。从具有argv[] 信息的main,您需要更改r_workerf_worker,它们都调用probe。然后probe 调用函数print_host

    所以你需要将argv[2] 的值从main 一路传递到print_host。然后你可以改变你显示的 fprintf 行。

    【讨论】:

    • 谢谢,但现在我比以前更笨了。我知道的太少,所以我可以做你写的:D
    • 为了让事情变得更简单,但更丑陋,您可以将 argv[2] 复制到全局变量,然后在 print_host 中使用该全局变量
    • 谢谢,但我的大脑仍然崩溃..要准确理解您所说的,我需要阅读整本 C/C++ 书.. 我不能,也没有足够的空间.. :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2011-01-21
    相关资源
    最近更新 更多