perl实现DNS反向解析的问题

8 views
Skip to first unread message

王小默

unread,
Sep 11, 2010, 3:28:39 AM9/11/10
to perl...@googlegroups.com
我是个新手 有些问题想求助于大家.

知道目标主机的IP 想要得到目标IP的域名 有什么好的方法 或者 好的模块没 ?


备注:

我在做一个监听局域网内喜好网站的汇总工作。

我通过libpcap+tcpdump对局域网内进行监听。tcpdump tcp port 80 and src host 我的IP -nn -t -i eth0 -l >tcp.sample
写了一个基本的perl脚本提取出了局域网内80端口访问的主机IP 现在我需要把得到的IP转换为域名。不知道有什么好的方法没`。




--
                        Love From
                                 王小默

万朝伟

unread,
Sep 11, 2010, 3:41:45 AM9/11/10
to perl...@googlegroups.com
就这个需求来说我觉得你的做法可能不是最优的,先不说大部分ip没有做反解,就算是按要求做了反解也是一个ip对应一个域名,而实际上一个ip上能绑定n多的域名,做n多的网站


--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

王小默

unread,
Sep 11, 2010, 3:51:01 AM9/11/10
to perl...@googlegroups.com
这个确实是个问题。不过就这个项目来说我就想到了这种方法。tcpdump抓取出来的数据只能得到你访问目标IP。很无语。大家有什么好的方法吗?求助啊。
还有 。就我说的知道目标IP然后得到域名的perl怎么写。可以通过LWP实现吗?就算不现实。我也想知道下怎么实现。呵呵。
--
                        Love From
                                 王小默

Kaiwang Chen

unread,
Sep 11, 2010, 2:48:27 PM9/11/10
to perl...@googlegroups.com
找HTTP 协议里的 Host: 头

Xiaojun Deng

unread,
Sep 11, 2010, 11:29:10 PM9/11/10
to perl...@googlegroups.com
tcpdump 能抓到 http 的报文吗
2010/9/12 Kaiwang Chen <kaiwan...@gmail.com>:

王小默

unread,
Sep 11, 2010, 11:35:33 PM9/11/10
to perl...@googlegroups.com

能行啊 为啥不能了?tcpdump挺强大的。再加上perl的快速开发。很强大

Xiaojun Deng

unread,
Sep 12, 2010, 2:01:40 AM9/12/10
to perl...@googlegroups.com
这样的啊,没用过这东西,看名字还以为它只能抓 tcp 的报文分析,要经过解码才能知道相应的 http 报文内容 :)
既能抓到 http 报文的话,请求头里面就有 URL 信息吧
2010/9/12 王小默 <wangxi...@gmail.com>:

王小默

unread,
Sep 12, 2010, 2:17:16 AM9/12/10
to perl...@googlegroups.com
直接tcpdump tcp port 80的话已经提取不到url了。只能提取到目标IP了。
经过改进。tcpdump udp port 53就可以了

Joe

unread,
Sep 12, 2010, 5:04:45 AM9/12/10
to perl...@googlegroups.com
可以考虑 Net::Analysis

或者,针对此特定问题,土办法:
tcpdump -l -w - tcp port 80 | grep -a '^Host: '
;)


2010/9/12 王小默 <wangxi...@gmail.com>

Crys Hen

unread,
Sep 12, 2010, 10:18:15 PM9/12/10
to perl...@googlegroups.com
一定要用perl来解决吗?
这个还是nslookup 命令比较快吧

2010/9/11 王小默 <wangxi...@gmail.com>

--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。



--
............Keep Learing......

bob yang

unread,
Sep 12, 2010, 11:09:47 PM9/12/10
to perl...@googlegroups.com
没有perl来得快!

Wan Li

unread,
Sep 13, 2010, 12:03:17 AM9/13/10
to perl...@googlegroups.com
2010/9/12 Joe <beginn...@gmail.com>

可以考虑 Net::Analysis

或者,针对此特定问题,土办法:
tcpdump -l -w - tcp port 80 | grep -a '^Host: '
;)

这个NET Analysis只能支持tcp?
--
>: ~

王小默

unread,
Sep 13, 2010, 12:32:22 AM9/13/10
to perl...@googlegroups.com
查了查NET Analysis 没怎么明白`.

--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。



--
                        Love From
                                 王小默

Joe

unread,
Sep 13, 2010, 12:37:07 PM9/13/10
to perl...@googlegroups.com
两个一起re好了,见下面


2010/9/13 王小默 <wangxi...@gmail.com>
查了查NET Analysis 没怎么明白`.

$ cat Net/Analysis/Listener/HTTPHost.pm
package Net::Analysis::Listener::HTTPHost;

use strict;
use warnings;
use POSIX qw(strftime);
use base qw(Net::Analysis::Listener::Base);

sub http_transaction {
    my ($self, $args) = @_;
    my ($req)       = $args->{req};         # isa HTTP::Request
    my ($req_mono)  = $args->{req_mono};    # isa Net::Analysis::TCPMonologue
    my ($resp_mono) = $args->{resp_mono};   # isa Net::Analysis::TCPMonologue

    printf "%s\t%s\n", strftime('%F %T', localtime $req_mono->t_start()), $req->header('Host');
}

1;

$ perl -MNet::Analysis -e main HTTP HTTPHost tcpdump.out
2010-09-14 00:25:47 gmail.com
2010-09-14 00:25:51 cpan.org


在 2010年9月13日 下午12:03,Wan Li <wanl...@gmail.com>写道:

2010/9/12 Joe <beginn...@gmail.com>

可以考虑 Net::Analysis

或者,针对此特定问题,土办法:
tcpdump -l -w - tcp port 80 | grep -a '^Host: '
;)

这个NET Analysis只能支持tcp?

仔细看,有 Net::Analysis::Listener::HTTP 的

Wan Li

unread,
Sep 13, 2010, 9:55:35 PM9/13/10
to perl...@googlegroups.com

这个NET Analysis只能支持tcp?

仔细看,有 Net::Analysis::Listener::HTTP 的


看了下文档,UDP是在experimental/todo里面,还没试,谢谢 

--
>: ~

fantasy zheng

unread,
Sep 13, 2010, 10:08:08 PM9/13/10
to perl...@googlegroups.com
既然你用了libpcap,就没有必要再使用tcpdump了,完全可以自己来分析http协议,提取出host字段,即便用C写也不需要几行代码,最重要的是可以做到实时监听,不需要去匹配tcpdump的日志。
《网络安全开发包详解》这本书可以看看。
2010/9/14 Wan Li <wanl...@gmail.com>

--
>: ~

--
Reply all
Reply to author
Forward
0 new messages