`
st780206
  • 浏览: 47890 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Net::Ping包使用方法简介

阅读更多

http://www.moon-soft.com/program/bbs/readelite968106.htm

 

writer: demonalex
email: demonalex_at_hackermail.com
homepage: demonalex.co.tv


    Net::Ping包-----1个为了检查数据包到远程主机是否能到达的接口。

    附录:Perl5 WIN32版自带也有Net::Ping包,在perl目录\lib\Net\下,不过那个包对此文所提到的方法与其
属性等很多都不支持,建议到CPAN再下一次,URL:
http://search.cpan.org/src/BBB/Net-Ping-2.31/lib/Net/Ping.pm
由于此包的使用方法特殊,所以加个循环结构用作网络安全中使用的扫描器就再好不过了。

    这个包的基本运行步骤是这样的:建立对象(定义协议等网络参数)->PING->[ACK](当PING的协议为SYN时此步
骤有效)->关闭对象。协议有6种方便选择,预定义为TCP;当选定协议为UDP时只能探测到UDP7---ECHO服务;IC-
MP时等于普通的PING,但运行需要root权限;当协议为external时将会调用Net::Ping::External模块,在这里
就不多加说明了;使用的SYN的话就会使用半开式连接探测,此时可以使用ack方法作返回值探测,注意:有点不
同的是在这里调用SYN是不需要root权限的。

===================================================================================================================
主要方法:
------------------------------------------------------------------------------------------------------
Net::Ping->new([$proto [, $def_timeout [, $bytes [, $device [, $tos ]]]]]);

新建了一个Net::Ping对象。第一个参数($proto)为协议值,共有六种选择:TCP、UDP、ICMP、STREAM、SYN、E-
XTERNAL,默认值为TCP;第二个参数为默认超时值($def_timeout),以秒为单位,设置此值是为了定义PING方法
的超时值,默认为5秒;发送包的数据大小($bytes)会根据你选择的协议不同而有不同的结果,当你选择的协议
为TCP时系统忽略此值,当协议为UDP时此值默认为为1(最小值),其他类型则为0,此值可以选择的最大值为1024
;设备选项($device)为输出设备接口;服务类型Type of service($tos)通常可以忽略。可以使用无参数方式
调用此方法。调用此方法后的返回值为一个Net::Ping对象变量。


$p->ping($host [, $timeout]);

发送一个数据包并等待其返回。$p为Net::Ping对象变量;$host为远程主机地址(既可以是HOST格式,也可以是
Address格式);超时值($timeout)为发送数据的超时值,此值可以省略,当此参数省略时,数据超时值以new方
法的$def_timeout的值为准。这个方法的返回值为非典型布尔值,有三种可能:有返回值时为非0数、无返回值时
为0、发送参数定义失败为undef。


$p->source_verify( { 0 | 1 } );

此方法是允许源地址检测多网络接口的远程主机返回数据的‘有效性’的。此方法只影响UDP与ICMP。默认此方
法所对应的功能是启动的。


$p->service_check( { 0 | 1 } );

调用此方法将强行确定对方服务的‘有效性’。这个方法只针对TCP、UDP、SYN。默认此方法对应的功能是不启
动的。


$p->hires( { 0 | 1 } );

调用此方法将导致使用Time::HiRes模块,允许在以毫秒为单位的时间内接受被并发PING方法调用的数据返回。
默认此方法所对应的功能是不启动的。


$p->bind($local_addr);

用于绑定发送数据包的源地址(PS:是不是觉得好象在定义SOCKET的服务端呢?!:P)。参数的值可以使用HOST格式
或ADDRESS格式,但一定要是本机器的其中一个接口的地址。


$p->open($host);

当你使用的协议类型是STEAM时,每一次调用这个方法都会打开一个SOCKET。这个方法通常只用于为了建立不同
超时值的连接时或用于移除原先由PING方法所帮定的主机地址时;这个方法的调用对其他协议无效。


$p->ack( [ $host ] );

当你使用SYN协议时,调用此方法用于探测由远程主机返回的回应数据包(SYN+ISN+ACK)。返回值为布尔值;参
数($host)若被定义且此方法调用成功则此值为发出回应数据包的主机地址值。此方法只用与SYN协议。


$p->nack( $failed_ack_host );

此方法通常配合ACK方法一起使用。此方法是为了找出为什么调用ACK方法会‘失败’的原因(PS:算是这个包的
一个容错机制吧)。参数为调用ACK方法失败的主机地址值。


$p->close();

关闭Net::Ping对象变量。


pingecho($host [, $timeout]);

一个为了兼容性而存在的函数,调用方法与PING方法一样,但只用于TCP。

===================================================================================================================
相关实验:
------------------------------------------------------------------------------------------------------
#!usr/bin/perl -w
use Net::Ping;
$remote_host=$ARGV[0];
$syn=Net::Ping->new("syn");
$syn->{port_num}=$ARGV[1];
$syn->ping($remote_host);
if($syn->ack){
print("Host: $ARGV[0]'s Port: $ARGV[1] is Opened!\n");
$syn->close;
exit 1;
}else{
print("Maybe Closed!:(\n");
$syn->close;
exit 1;
}

#单IP单端口SYN扫描器

===================================================================================================================
作者与版权:
------------------------------------------------------------------------------------------------------
AUTHORS 
  Current maintainer:
    bbb@cpan.org (Rob Brown)

  External protocol:
    colinm@cpan.org (Colin McMillen)

  Stream protocol:
    bronson@trestle.com (Scott Bronson)

  Original pingecho():
    karrer@bernina.ethz.ch (Andreas Karrer)
    pmarquess@bfsec.bt.co.uk (Paul Marquess)

  Original Net::Ping author:
    mose@ns.ccsn.edu (Russell Mosemann)
COPYRIGHT 
Copyright (c) 2002-2003, Rob Brown. All rights reserved.

Copyright (c) 2001, Colin McMillen. All rights reserved.

This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

$Id: Ping.pm,v 1.86 2003/06/27 21:31:07 rob Exp $

===================================================================================================================

    此文写得特烂,希望大家不要见怪:P



----
You may say I'm a dreamer 
But I'm not the only one 
I hope someday you'll join us 
And the world will be as one. 

 

分享到:
评论

相关推荐

    tnsping命令解析

    - `service_name` 是指要使用tnsping测试的远程数据库服务名称,也就是在Oracle配置和移植工具Net Configuration Assistant中创建的网络服务名。 - `[n]` 是可选参数,表示tnsping命令重复执行的次数,默认情况下只...

    tcpdump&ping命令简介

    通过阅读`tcpdump详解2.doc`、`Tcpdump命令的使用与示例——linux下的网络分析.doc`、`ping详解.doc`和`linux下抓包封信工具Tcpdump详解.doc`等文档,你将能够深入了解这两个命令的用法,提高你的网络故障排查能力。...

    关于cmd的命令,ping命令大全

    #### Ping命令的使用方法 Ping命令的基本语法结构为: ``` ping [-参数] 目标地址 ``` - **-t**:连续不断地发送数据包,直至使用Ctrl+C中断。 - **-a**:指定发送数据包时显示主机名称。 - **-n count**:发送...

    C++ 模拟 ping 程序

    根据给定的信息,我们可以深入探讨如何使用C++来模拟实现一个`ping`程序。下面将详细介绍这个程序的主要功能、设计思路以及其实现细节。 ### C++ 模拟 ping 程序 #### 1. 程序简介 在计算机网络中,`ping`命令是...

    wireshark软件使用和一次抓包实验

    Wireshark 软件使用和一次抓包实验 Wireshark 是一种功能强大的网络包分析工具,可以捕获和显示网络包的详细信息。下面是 Wireshark 软件使用和一次抓包实验的详细介绍。 一、Wireshark 软件简介 Wireshark 是一...

    Ping IP 源码

    2. VBScript与Visual Basic简介: - VBScript是Microsoft开发的一种轻量级的脚本语言,常用于Windows系统中的批处理、网页脚本等。 - Visual Basic是面向对象的编程环境,它是基于Basic语言的,适合于开发Windows...

    VB 实现ping 源程序

    本文将详细讲解如何使用VB实现ping功能,这是一个基础但实用的网络诊断工具,通过发送ICMP(Internet Control Message Protocol)回显请求来检查网络连通性。 **1. ICMP协议简介** 在开始编写ping程序之前,我们...

    smokeping安装手册

    【 Smokeping 简介】 Smokeping 是一款由 Tobi Oetiker 创造的开源监控工具,其设计目的是对网络延迟和丢包率进行详细而深入的监控。由于其作者同时也是 rrdtool(Round Robin Database Tool)的创造者,Smokeping ...

    使用ping命令自测网络故障.docx

    - `-t`:持续不断地发送Ping包,直到按下Ctrl+C停止。 - `-n [count]`:发送指定次数的Ping包。 - `-l [size]`:指定Ping包的大小。 - `-f`:指定不要对数据包进行分片。 #### 三、操作步骤详解 ##### 3.1 检测本...

    JustPing网速测试软件

    功能简介: 测试某主机(域名、IP)与世界各国网络节点的网络情况,确切的说是ping的延迟情况 提供最小值、最大值、平均值等,单位为MS 可按数值大小进行排序,瞬间知道与哪里最快,与哪里最慢 .... 更多功能有待你...

    centos5.4安装smokeping全手册

    在CentOS 5.4环境下安装Smokeping全手册中,首先对Smokeping进行了简介。Smokeping是由rrdtool的作者Tobi Oetiker所开发,是一款开源工具,它具有图形显示方面的优势,并且具备多种探测方式,比如fping、echoping、...

    ping测试源码(仅IE)

    ### 一、Ping 测试简介 #### 1.1 Ping 测试定义 Ping 是一个网络工具,用于测试主机之间的连通性。它通过发送 ICMP (Internet Control Message Protocol) 或 TCP 请求包来测量往返时间 (Round-Trip Time, RTT),...

    易语言源码易语言API的Ping代码源码.rar

    1. 易语言简介: 易语言是由王志杰先生创建的一种中文编程语言,它的主要特点是语法简洁明了,类似于日常中文表达,降低了编程的入门难度。易语言支持多种操作系统,如Windows、Linux等,并且拥有丰富的库函数和模块...

    第1招:Ping不通接口、SSH不了设备怎么办?请用Service-manage

    ### 第1招:Ping不通接口、SSH不了设备怎么办?请用Service-manage 在网络安全管理和维护过程中,我们经常遇到一种情况:尽管接口已正确配置了安全区域与路由,但仍然无法通过Ping或SSH访问特定设备。这往往是因为...

    局域网故障诊断工具软件支持介绍终稿.pdf

    总之,局域网故障诊断是一个综合性的过程,不仅需要熟练掌握各种软件和硬件工具的使用方法,还需要具备扎实的网络知识基础和丰富的实践经验。通过对故障现象的准确识别、详细描述以及科学合理的排查流程,可以有效地...

Global site tag (gtag.js) - Google Analytics