扫描指定ip的端口(C#)
class PingExam
{
public static void Main()
{
Ping ping = new Ping();
string ip = "192.168.1.43"; // 目标ip
int[] ports = { , , , , , }; // 需要扫描的端口
scanPort(IPAddress.Parse(ip), ports);
} private static void scanPort(IPAddress address, int startPort, int endPort)
{
int[] ports = new int[endPort - startPort + ];
for (int i = ; i < endPort-startPort+; i++) {
ports[i] = startPort + i;
}
scanPort(address, ports);
} private static void scanPort(IPAddress address, int[] ports)
{
try {
int count = ports.Length;
AutoResetEvent[] arEvents = new AutoResetEvent[count]; // 同步对象
for (int i = ; i < count; i++) {
arEvents[i] = new AutoResetEvent(false); // 同步对象, 初始未触发
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(IPAddress.Any, ));
socket.BeginConnect(new IPEndPoint(address, ports[i]),
callback,
new ArrayList() { socket, ports[i], arEvents[i]} // 传递3个参数: 当前socket, 端口, 同步对象
);
} WaitHandle.WaitAll(arEvents); // 等待所有扫描工作完成
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
} private static void callback(IAsyncResult ar) // 扫描完成后的回调方法
{
ArrayList list = (ArrayList)ar.AsyncState; // 获取传递的参数
Socket socket = (Socket)list[];
int port = (int)list[];
AutoResetEvent arevent = (AutoResetEvent)list[]; if (ar.IsCompleted && socket.Connected) {
Console.WriteLine("port: {0} open.", port); // 检查 connected属性, 如果为true 则表示是开放的
}
else {
Console.WriteLine("port: {0} closed.", port);
}
try {
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
catch {
}
arevent.Set(); // 完成后触发
}
}
扫描指定ip的端口(C#)的更多相关文章
- CentOS6.5 配置防火墙+允许指定ip访问端口
参考博文: iptables防火墙只允许指定ip连接指定端口.访问指定网站 一.配置防火墙 打开配置文件 [root@localhost ~]# vi /etc/sysconfig/iptables ...
- centos7 firewall指定IP与端口访问(常用)
1.启动防火墙 systemctl start firewalld.service 2.指定IP与端口 firewall-cmd --permanent --add-rich-rule="r ...
- pycharm中指定ip和端口
pycharm中指定ip和端口 环境: 系统:win7 本机ip:192.168.0.100 1.建立工程请参照:https://www.cnblogs.com/effortsing/p/103945 ...
- centos7 firewall指定IP与端口、端段访问(常用)
https://blog.csdn.net/yipianfuyunsm/article/details/99998332 https://www.cnblogs.com/co10rway/p/8268 ...
- MySQL指定ip和端口连接数据库,并修改数据库密码
一.指定ip和端口连接数据库 命令 mysql -u root -h (ip) -P (端口)-p 假设ip是:127.0.0.1:端口是:13326,连接的命令: mysql -u root -h ...
- python - socket - client端指定ip和端口
问题描述: 在设备中有3个NI, ip分别为192.168.1.5/6/7.其中本端192.168.1.6同对端192.168.1.10建立了一个tunnel. 我希望测试tunnel连通性, 对端起 ...
- 运行Django项目指定IP和端口
默认IP和端口 python manage.py runserver 指定端口: python manage.py runserver 192.168.12.12:8080 此时会报错,我们需要修改配 ...
- tcpdump指定IP和端口抓包
如下指定抓www.baidu.com 并且80端口的包 保存到test.cap 可以在Windows下面用wireshark打开 tcpdump 'port 80 and host www.baidu ...
- pycharm开发flask指定ip、端口无效
原因分析 是因为使用了pycharm的版本的问题.并不是flask框架本身的问题(不管你是如何设置的flask配置,通过加载config也好,还是通过run的时候传入形参也好,均不影响) 可以很明显的 ...
随机推荐
- alibaba fastjson的使用总结和心得
最初接触alibaba fastjson是由于其性能上的优势,对比原来采用codehause.jackson的解析,在hadoop平台上的手动转换对象有着将近1/3的性能提升,但随着开发应用越来越 ...
- 客户端调用wcf服务,如何提高调用性能
IO调用服务 1.使用using(每次自动释放) ; i < ; i++) { var watch = new Stopwatch(); watch.Start(); using (var cl ...
- 如何更改Windows10的计算机基本信息
请问如何去掉红色框内的内容?优化大师更改无效! 最佳答案 打开注册表,定位到如下路径 1 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current ...
- Backing up the tail
The tail of the transaction log usually refers to the contents of the database's transaction log tha ...
- 83. Remove Duplicates from Sorted List + 82. Remove Duplicates from Sorted List II
▶ 删除单链表中的重复元素. ▶ 83. 把重复元素删得只剩一个,如 1 → 1 → 2 → 3 → 3 → 3 → 4 → 5 → 5 变成 1 → 2 → 3 → 4 → 5.注意要点:第一个元素 ...
- Rhythmk 学习 Hibernate 03 - Hibernate 之 延时加载 以及 ID 生成策略
Hibernate 加载数据 有get,跟Load 1.懒加载: 使用session.load(type,id)获取对象,并不读取数据库,只有在使用返回对象值才正真去查询数据库. @Test publ ...
- 迷你MVVM框架 avalonjs 学习教程8、属性操作
属性操作是DOM操作很大的一块,它包括类名操作,表单元素的value属性操作,元素固有属性的管理,元素自定义属性的管理,某些元素的一些布尔属性的操作.大多数情况下,元素属性的值是字符串类型,我们称之为 ...
- servlet中关于下载
package com.huawei.response; import java.io.BufferedInputStream;import java.io.IOException;import ja ...
- win bat命令后台运行控制台应用
@echo off if "%1"=="h" goto begin start mshta vbscript:createobject()(window.clo ...
- Bind搭建DNS服务
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据I ...