`

ruby TCP 抓包工具

阅读更多
抓包工具包括ruby版本和perl版本

ruby  抓包代码
require 'rubygems'

ip = "your ip"
cmd = "/usr/sbin/tcpdump -lnA -s 0" #  dst host #{ip} or src host #{ip}

f = IO.popen(cmd) do |f|
  while true
    packet = f.read(1024*100)
    cap = /(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/.match(packet)
    if cap
      client,host  = cap[1],cap[2]
      #put 请求方法 ,这个可以根据你抓包的类型,进行自定义过滤
      reg = /(\?xml|HTTP|XMLHttpRequest|XMLRequest|XMLSchema|XMLSchema-insta0x|XML|GET|POST|WWW-Authenticate|Authorization).+/i
      method =  reg.match(packet)
      if method
        puts "source:#{client} > dest:#{host}"
        puts "method is #{method[1]}"
        puts "data >>>"
        puts method
      end#end if method 
    end

  end
end

perl  抓包代码
#!/usr/bin/perl                                                                                                                 

$LIMIT = shift || 50000000;

$|=1;
open (STDIN,"/usr/sbin/tcpdump -lnx -s 0  |"); #dst host ip or src host ip
while (<>) {
    if (/^\S/) {
    last unless $LIMIT--;
    while ($packet=~/(HTTP|XMLHttpRequest|XMLRequest|XMLSchema|XMLSchema-insta0x|XML|GET|POST|WWW-Authenticate|Authorization).+\
/g)  {
        print "$client -> $host\t$&\n";
        }
        undef $client; undef $host; undef $packet;
        ($client,$host) = /(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/
            if /P \d+:\d+\((\d+)\)/ && $1 > 0;
    }
    next unless $client && $host;
    s/\s+//;
    s/0x[0-9a-f\s]+://;
    s/0x:[\s]+//;
    s/\s+//;
    s/([0-9a-f]{2})\s?/chr(hex($1))/eg;
    tr/\x1F-\x7E\r\n//cd;
    $packet .= $_;
}


分享到:
评论
1 楼 lzyzizi 2010-01-15  
我以为是些底层的东西呢,原来还是利用了tcpdump。。。本质是tcpdump在抓包。。。

相关推荐

    java开源包8

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包4

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    Java资源包01

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包1

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包2

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包3

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包6

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包5

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包10

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包11

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包7

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包9

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包101

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    ELK-guide-cn.pdf

    - ES在运维监控领域的其他玩法:包括percolator api和watcher报警、ElastAlert、packetbeat抓包分析、时序数据库以及Etsy的Kale异常检测。 Logstash Logstash是ELK stack中的日志收集和处理工具。它能够从多个来源...

    hackersheet-naopoyo

    3. **工具使用**:“hackersheet-naopoyo”可能包含了常用黑客工具的介绍和使用教程,如Nmap(网络映射)用于探测网络活动,Metasploit框架用于利用漏洞,Wireshark(网络封包分析软件)用于抓包分析,以及John the ...

Global site tag (gtag.js) - Google Analytics