用vbs写的端口扫描器

原创 2007年10月06日 00:33:00

                                   用vbs写的端口扫描器

WSH最好的交互I/O方式莫过于MsgBox()输出与InputBox()输入了,因此在参数输入部分小神采用了
InputBox()函数,通过使用它获取远程主机的地址与端口号。

接下来是定义Winsock控件对象:
Set socket=WScript.CreateObject("MSWinsock.Winsock","winsock_")
'上面一句的意思是:建立一个名为socket的MSWinsock.Winsock对象,并定义其后的事件调用所使用的
'前缀为winsock_

设置对象socket的属性:
socket.Protocol=0 '0为TCP、1为UDP
socket.RemotePort=port '远程主机的端口号定义为用InputBox()吸入的端口号
socket.RemoteHost=host '远程主机的地址定义为用InputBox()吸入的地址

设置好相关属性后可以直接调用connect()方法:
socket.connect

需要使主线程延时,用于等待connect()建立三次握手。在此可以建立一个循环体,用于延时。
for a=1 to 30 step 1 '循环30次
WScript.sleep 10 '每次睡眠10
next '结束循环部分

在上面的延时等待时间中,若能正常地建立连接,则MSWinsock控件会自动调用connect事件。
Sub winsock_connect() '事件入口,注意:“事件”用的是子程序sub的方式,其调用sub名称的前缀
'为我们原来在创建对象时建立的前缀(调用的第二个参数)
msgbox("The "&socket.remoteport&" is opened!") '提示该端口打开了
socket.close '表明socket对象“死亡”
WScript.quit '退出程序
end sub '结束事件

若在延时后还不能建立连接(不能进入到connect事件),则在主线程中提示连接失败并关闭程序。
msgbox("The "&socket.remoteport&" is closed!") '提示该端口没有开放
socket.close '表明socket对象“死亡”
WScript.quit '退出程序

还有一点是比较重要的,就是变量的作用域问题。因为变量socket是用来定义MSWinsock.Winsock
对象类的载体,所以它必须在主线程与事件中都能被“作用”,因此必须将其定义为Public全局变量。

 

整个程序如下:
复制内容到剪贴板代码:

Public socket,a,host,port
host=inputbox("host/ip:")
port=inputbox("port:")
Set socket=WScript.CreateObject("MSWinsock.Winsock","winsock_")
socket.Protocol=0
socket.RemotePort=port
socket.RemoteHost=host
socket.connect
for a=1 to 30 step 1
WScript.sleep 10
next
msgbox("The "&socket.remoteport&" is closed!")
socket.close
WScript.quit

Sub winsock_connect()
msgbox("The "&socket.remoteport&" is opened!")
socket.close
WScript.quit
end sub
'用vbs写的端口扫描器
保存为 safer.vbs

直接 cmd 下 使用 就行
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

如何用Scapy写一个端口扫描器?

scapy官方教程 常见的端口扫描类型有: 1. TCP 连接扫描 2. TCP SYN 扫描(也称为半开放扫描或stealth扫描) 3. TCP 圣诞树(Xmas Tree)扫描 4. T...

用vbs来写sql注入等80端口的攻击脚本

昨天晚上在机器里乱翻时无意打开一个vbs脚本,突然发现一个以前没有见过的对象Test.SendRequest("http://" & g_sServer & "/testfiles/browser.a...

BCB打造多线程端口的扫描器(zhuan)

fm:http://www.heibai.net/article/info/info.php?infoid=38378 今天我们就要做一个扫描TCP端口是否开放的程序,原理很简单,就是写一个TCP的...

用Python编写一个高效的端口扫描器

PyPortScanner python多线程端口扫描。

多线程端口扫描器的实现(java)

这是我大三下学期课程设计的题目,没有想象中的那么难。 一、要求: 1.利用Socket通信机制实现一个多线程的端口扫描器。 2.设计要求:       2.1用户界面:用户可以输入IP地址...
  • J_Bang
  • J_Bang
  • 2016-07-28 09:08
  • 2734

网络编程-Socket类端口扫描器

客户端套接字 端口扫描器JPortScanner.java import java.net.*; import java.io.*; //端口扫描 public class JPortScann...

Tiny demo 端口扫描器 for Linux

一直在windows下写代码,突然想学习Linux 编程 写个小代码玩玩。只扫80端口。非阻塞套接字。轻量级信号量控制扫描线程数量。 #include #include #include #in...
  • LionD8
  • LionD8
  • 2013-08-28 15:52
  • 2007

端口扫描器

一、端口扫描器功能简介: 服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件...

小小黑客之路(一)——端口扫描器

在之前了解过黑客,曾经在网易上写过一篇关于黑客的文章——《黑客初识》,由于各种原因没有继续学习去,由于前几天的机房讲课,又激起我那不安的心,故找到一本《小小黑客之路》进行学习。   进入主题,介绍一下...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)