获取系统当前打开的端口(tcp。udp)状态,以及连接方的ip。端口

TCP/UDP 占用端口问题总结 TCP/UDP 占用端口问题总结TCP/UDP 共用端口问题。1.TCP UDP 可以共同占用一个端口号吗?2.为什么一个80端口可以建立很多连接?3.承接2问 为什么还会出现端口被占的情况?? TCP/UDP 共用端口问题。 1.TCP UDP 可以共同占用一个端口号吗? 首先明确一点 端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。 应用程序(即进程)通过系统调用与某端口建立连接... 阅读详情

简捷实用的防黑手段


康帕斯(中国)国际信息服务有限公司 马文骞
01-7-6 下午 02:00:55


当我们担心被黑客攻击或怀疑电脑被植入木马时,我们往往求助于防火墙。其实,避免用宰牛刀的手段有很多,本文即通过实时监控全部 TCP连接的方法来实现防黑。
一、监控 TCP连接
黑客程序或木马程序的本质是实现数据传输。TCP和UDP(用户数据文报协议)是两个最常用的数据传输协议,它们都使用设置监听端口的方法来完成数据传输。
实时监控所有端口的连接情况、及时对异常连接发出警告并提示用户删除异常连接,就可以有效地达到防黑目的。
使用微软的IP助手库函数(iphlpapi.dll)是一个捷径。其中的 GetTcpTable函数能返回当前系统中全部有效的 TCP连接。其定义为:
DWORD GetTcpTable(
PMIB_TCPTABLE pTcpTable, // buffer for the connection table
PDWORD pdwSize, // size of the buffer
BOOL bOrder // sort the table?
);
其中参数一是 TCP连接表缓冲区的指针,参数二是缓冲区大小(当缓冲区不够大时,该参数返回实际需要的大小),参数三指示连接表是否需要按“Local IP”、“Localport”、“Remote IP”、“Remote port”依次进行排序。
对于监控 UDP连接表,可使用 GetUdpTable函数完成。由于在使用上完全类似,这里略去讨论(后面的实例程序中也相应地略去了对 UDP的监控)。
二、异常警告及删除连接
通过定时比较前后两个 TCP连接表,我们可以立即发现异常并发出警告。后面的实例程序用声音和报警标志提醒用户注意可能的外界入侵。
收到警告信号后,我们应首先将可疑连接删除掉,然后再仔细查找系统中是否有安全漏洞或有可疑进程在工作。IP助手库函数中的 SetTcpEntry函数可以帮助我们删除可疑连接。其定义为:
DWORD SetTcpEntry(
PMIB_TCPROW pTcpRow // pointer to struct. with new state info
);
在调用此函数之前,应将欲删连接的状态置为 MIB_TCP_STATE_DELETE_TCB(删除)。MIB_TCP_STATE_DELETE_TCB也是目前唯一可在运行时设置的状态。
三、实例程序及其运行情况
下面的三幅示意图分别展示了:(1) 系统被攻击前的状况,(2) 系统被目前流行的“冰河”远程攻击软件入侵后而发出警告的状况,以及(3) 用户正在清除可疑连接时的状况。
下面是实例程序的完整代码:
' 黑客入侵监控程序(VB6)
Option Explicit
Private Type MIB_TCPROW ' TCP连接表中一行的结构
dwState As Long ' 状态
dwLocalAddr As Long ' Local IP
dwLocalPort As Long ' Local port
dwRemoteAddr As Long ' Remote IP
dwRemotePort As Long ' Remote port
End Type
Private Type MIB_TCPTABLE
dwNum_Of_Entries As Long ' 当前 TCP连接的总数
TCP_Table(120) As MIB_TCPROW ' 预留了120行的缓冲区
End Type
Private Declare Function GetTcpTable Lib "iphlpapi.dll" (ByRef pTcpTable _
As MIB_TCPTABLE, ByRef pdwSize As Long, ByVal bOrder As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef _
pDest As Any, ByRef pSource As Any, ByVal Length As Long)
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function SetTcpEntry Lib "iphlpapi.dll" (ByRef pTcpTable _
As MIB_TCPROW) As Long
Dim Last_Num_Of_Entries As Long
Dim TCP1 As MIB_TCPTABLE
Private Sub Form_Load()
Timer1.Interval = 10000 ' 定时监控
Timer1_Timer
End Sub
Private Sub Timer1_Timer()
Dim Return1 As Long, i As Long, Tmp1 As Long, Tmp2 As Long
Dim Ip_Buf(1 To 4) As Byte
Dim Win_Path As String, Tmp3 As String
Return1 = GetTcpTable(TCP1, Len(TCP1), 1) ' 返回 TCP连接表
If Last_Num_Of_Entries <> 0 And _
Last_Num_Of_Entries <> TCP1.dwNum_Of_Entries Then ' 有异常时发出警告
Picture1.Visible = True ' 设置警告标志
On Error Resume Next
Win_Path = String(145, 0)
i = GetWindowsDirectory(Win_Path, 145)
Win_Path = Left(Win_Path, i)
i = sndPlaySound(Win_Path + "/Media/Ding.wav", &H1) ' 发出报警声音
On Error GoTo 0
Else
If Picture1.Visible = True Then Picture1.Visible = False
End If
Last_Num_Of_Entries = TCP1.dwNum_Of_Entries
Select Case Return1 ' 判断返回值
Case 0&:
Text1 = "": Combo1.Clear
For i = 0 To TCP1.dwNum_Of_Entries - 1
Tmp3 = Str(i + 1) + " "
Select Case TCP1.TCP_Table(i).dwState ' 显示连接状态
Case 1: Tmp3 = Tmp3 + "CLOSED"
Case 2: Tmp3 = Tmp3 + "LISTENING"
Case 3: Tmp3 = Tmp3 + "SYN_SENT"
Case 4: Tmp3 = Tmp3 + "SYN_RCVD"
Case 5: Tmp3 = Tmp3 + "ESTABLISHED"
Case 6: Tmp3 = Tmp3 + "FIN_WAIT1"
Case 7: Tmp3 = Tmp3 + "FIN_WAIT2"
Case 8: Tmp3 = Tmp3 + "CLOSE_WAIT"
Case 9: Tmp3 = Tmp3 + "CLOSING"
Case 10: Tmp3 = Tmp3 + "LAST_ACK"
Case 11: Tmp3 = Tmp3 + "TIME_WAIT"
Case 12: Tmp3 = Tmp3 + "DELETE_TCB"
End Select
Combo1.AddItem Tmp3 ' 充实列表以供用户删除
Tmp3 = Tmp3 + ":" + vbCrLf + vbTab + "Local: " ' 本地IP
CopyMemory Ip_Buf(1), TCP1.TCP_Table(i).dwLocalAddr, 4
Tmp3 = Tmp3 + CStr(Ip_Buf(1)) + "." + CStr(Ip_Buf(2)) + "." _
+ CStr(Ip_Buf(3)) + "." + CStr(Ip_Buf(4))
Tmp1 = TCP1.TCP_Table(i).dwLocalPort ' 本地端口
Tmp2 = Tmp1 / 256 + (Tmp1 Mod 256) * 256
Tmp3 = Tmp3 + ":" + Str(Tmp2) + vbTab + "Remote: " ' 远程IP
CopyMemory Ip_Buf(1), TCP1.TCP_Table(i).dwRemoteAddr, 4
Tmp3 = Tmp3 + CStr(Ip_Buf(1)) + "." + CStr(Ip_Buf(2)) + "." _
+ CStr(Ip_Buf(3)) + "." + CStr(Ip_Buf(4))
Tmp1 = TCP1.TCP_Table(i).dwRemotePort ' 远程端口
Tmp2 = Tmp1 / 256 + (Tmp1 Mod 256) * 256
Tmp3 = Tmp3 + ":" + Str(Tmp2) + vbCrLf
Text1 = Text1 + Tmp3
Next i
Case 50&:
MsgBox "系统不支持该API函数": End
Case 87:
MsgBox "无效的参数": End
Case 111&:
MsgBox "缓冲区溢出": End
Case 232&:
MsgBox "无数据": End
End Select
End Sub
Private Sub 删除该连接_Click()
Dim Return1 As Long
If Combo1.ListIndex < 0 Then Exit Sub
' 将欲删连接的状态置为MIB_TCP_STATE_DELETE_TCB(值为12)
TCP1.TCP_Table(Combo1.ListIndex).dwState = 12
Return1 = SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex)) ' 执行删除
If Return1 = 0 Then
MsgBox "成功删除当前连接"
Else
MsgBox "删除连接失败"
End If
Timer1_Timer
End Sub
浅谈TCP/UDP、IP 、Socket、HTTP 昨天在markdown重新整理了一下网络协议有关知识、再次更新 1.1 TCP/IP协议组 TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成 IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。 TCP层负责面向应用的可靠的或费可靠的数据传输机制,这是网络编程的主要对象。 TCP/IP是个协议组,可 阅读详情

相关推荐

socket端口复用之TCP和UDP

一文彻底搞懂TCP和UDP端口复用,解决网络编程bind失败问题。

weixin_28673511的博客 4760

Python网络通信(udp、tcp)

1、IP地址 用来在网络中唯一的标记一台电脑;分为网络地址和主机地址。 私有IP地址有: 10.0.0.0~10.255.255.255 172.16.0.0~172.31.255.255 192.168.0.0~192.168.255.255 注意:IP地址127.0.0.1~127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用...

一蓑烟雨任平生 4434

Kali Linux实战:5种局域网DoS攻击手法全解析(附防御方案)

本文以Kali Linux为平台,深入解析了局域网内五种典型的DoS攻击手法,包括TCP SYN Flood、ICMP Flood、MAC地址泛洪、DHCP耗尽以及应用层CC攻击模拟。通过实战演示结合Wireshark抓包分析,清晰揭示了攻击原理与流量特征,并提供了从主机加固、防火墙规则到交换机安全配置(如端口安全、DHCP Snooping)等企业级防御方案,旨在帮助安全人员构建纵深防御体系。

weixin_29313423的博客 396

监控tcp连接

TCP(Transmission Control Protocol)传输控制协议: 提供面向连接的可靠的数据传输、适合传输大数据、速度慢 三次握手: Key的定义:传参形式定义: 获取参数:自定义模板如之前。

weixin_49888561的博客 1154

5分钟搞懂MSDNet:用Transformer实现小样本语义分割的保姆级教程

本文详细介绍了MSDNet(Multi-Scale Decoder Network)如何利用Transformer架构实现小样本语义分割。通过多尺度解码器和空间Transformer解码器,MSDNet能够在仅有1-5张标注图像的情况下完成精确分割任务。文章提供了PyTorch代码实例和优化技巧,帮助开发者快速掌握这一前沿技术。

weixin_30832143的博客 506

Zemax操作40--序列模式中LD光源模拟

LD模拟

lzy750750的博客 9119

[转]教大家如何打造使用Tcpview(tcp查看器

原文地址:教大家如何打造使用Tcpview(tcp查看器)作者:jybasenet3 一玩 VS 对战平台的同学有一次发现了一个可以踢人的方法,就是用 TcpView 把那个连 接关掉。后来VS 平台封掉了这个程序,只要一打开TcpView就会被 VS 关掉。于是我萌生了 自己做个 TcpView的想法。 Tcpview是Winternals公司 Sysintern...

afdd28617的博客 857

基于Python的MGWR多尺度地理加权回归模型

多尺度地理加权回归(MGWR)变量之间的关系在地理空间上不是均一的,所有特征变量的影响都在不同的空间范围(带宽)内变化,某些变量可能表现出局部性影响(小带宽),某些变量可能表现出全局性影响(大带宽),通过优化每个特征变量的带宽,捕捉到空间关系的多尺度特性,得到更细致的模型解释。

weixin_61965078的博客 3853

使用GetTCPTable,SetTCPTable枚举/删除TCP端口连接情况(类似Netstat)

/* *IP Helper Function中提供了很多功能强大,使用简单的网络函数 * *这里写了两个调用GetTCPTable,SetTCPTable的函数,来说明其使用: *使用GetTCPTable来枚举TCP端口连接情况,模拟Netstat  *使用SetTCPTable来关闭一个TCP连接,目前为止SetTCPTable只支持删除一个TCP连接功能 * *Code by yztgx 

yztgx的专栏 7862

机器人控制基础:伺服驱动电机 PID 参数自适应控制的实现方法及研究

伺服电机PID参数自适应控制技术研究 摘要:针对伺服驱动电机在动态负载工况下传统PID控制性能下降的问题,本文研究了多种自适应控制方法。通过分析6种主流技术(包括模型参考自适应、模糊逻辑、神经网络等)的原理、实现步骤及适用场景,揭示了负载感知精度、参数调节实时性和系统稳定性三大技术难点,并提出了相应解决方案。以模糊自适应PID为例的实验验证表明,该技术能有效提升伺服系统在变负载条件下的控制性能。研究为工业应用中伺服电机的精确控制提供了重要参考。

start_up_go的博客 827

华为OD机考双机位C卷 - 螺旋数字矩阵 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 数字螺旋矩阵(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 3217

在vb中使用Iphlpapi.dll获取网络信息 第二章 第十七节 设置TCP连接状态

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

学习微软 .net 技术开发 3007

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM)

生成扩散模型DDPM如下图所示分为前向、逆向两个过程,它首先通过不断往原始清晰数据中添加噪声使其变成标准高斯噪声(前向过程),而后期望从标准高斯噪声中还原原始数据(逆向过程)。若能实现,那便可从已知的标准高斯分布中采样一个噪声数据,而后利用DDPM模型生成符合原始数据分布的新数据。 Diffusion模型包含两个过程:数学符号:y∝xy\propto xy∝x:y正比于x,即y随着x增大而线性增大。 条件概率:贝叶斯公式:p(A∣B)=p(B∣A)×p(A)p(B)p(A|B)=\frac{p(B|A)\

小哲的博客 1510

第十三节 获得目的地IP(只能是所在局域网中的IP)对应的物理地址 SendARP

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 Imports System.Runtime.InteropServices Public Class Form14 'DWORD SendARP( _In_ IPAddr DestIP, _In_ IPAddr SrcIP, _Out_ PULONG pMacAddr, _Inout_ PULONG PhyAddrLen); 'unsigned long .

学习微软 .net 技术开发 737

TypeError: ‘<=‘not supported between instances of ‘float’and ‘str‘解决方案

本文主要介绍了TypeError: '

weixin_43178406的博客 28万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

获取系统当前打开的端口

获取系统当前打开的端口(tcp。udp)状态,以及连接方的ip。端口--------------------------------------------------------------------------------一、监控 TCP连接  实时监控所有端口的连接情况、及时对异常连接发出警告并提示用户删除异常连接,就可以有效地达到防黑目的。 使用微软的IP助手库函数(iphlpa

1046

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

UDP和TCP可以使用同一个端口吗?

之前有读者在面试的时候,被问到:TCP 和 UDP 可以同时监听相同的端口吗?关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题:多个 TCP 服务进程可以同时绑定同一个端口吗?客户端的端口可以重复使用吗?客户端 TCP 连接 TIME_WAIT 状态过多,会导致端口资源耗尽而无法建立新的连接吗?所以,这次就跟大家盘一盘这些问题。TCP 和 UDP 可以同时绑定相同的端口吗? 其实我感觉这个问题「TCP 和 UDP 可以同时监听相同的端口吗?」表述有问题,这个问题应该表述成「TCP 和 UDP

资料免费分享,点击名片 4422

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【socket编程】TCP、UDP通信总结

一、什么是socket? Socket的英文原义是“孔”或“插座”。在编程中,Socket被称做 套接字,是网络通信中的一种约定。Socket编程的应用无处不在,我们平时用的QQ、微信、浏览器等程序,都与Socket编程有关。我们平时使用浏览器查资料,这个过程的技术原理是怎样的呢? 我们平时使用浏览器,大致就是这样的一个过程。这里有两个重要的名词: 服务端与 客户端。 Socket编程的目的就是如何实现这两端之间的通信。 1、Socket编程在嵌入式中也很重要 Socket编程不仅仅在互联网方面很重要,在我

果果小师弟的博客 4772

​TCP和UDP的135、137、138、139、445端口的作用?​

TCP和UDP的135、137、138、139、445端口的作用? 如果全是2000以上的系统,可以关闭137.138.139,只保留445 如果有xp系统,可能以上四个端口全部要打开 无论你的服务器中安装的是Windows 2000 Server,还是Windows Server 2003,它们无一例外会在默认安装下开通135端口、137端口、138端口、139端口和445端口。 这些端口可以说都是一把“双刃剑”,它们既能为你提供便利,也会...

月梦工作室 1万+

TCP 和 UDP 可以使用相同端口吗?

之前有读者在面试的时候,被问到:TCP 和 UDP 可以同时监听相同的端口吗?关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题:多个 TCP 服务进程可以同时绑定同一个端口吗?客户端的端口可以重复使用吗?客户端 TCP 连接 TIME_WAIT 状态过多,会导致端口资源耗尽而无法建立新的连接吗?所以,这次就跟大家盘一盘这些问题。TCP 和 UDP 可以同时绑定相同的端口吗? 其实我感觉这个问题「TCP 和 UDP 可以同时监听相同的端口吗?」表述有问题,这个问题应该表述成「TCP 和 UDP

jjc4261的博客 2642

UDP和TCP使用同一个端口,可行吗?

之前有读者在面试的时候,被问到:TCP 和 UDP 可以同时监听相同的端口吗?关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题:多个 TCP 服务进程可以同时绑定同一个端口吗?客户端的端口可以重复使用吗?客户端 TCP 连接 TIME_WAIT 状态过多,会导致端口资源耗尽而无法建立新的连接吗?所以,这次就跟大家盘一盘这些问题。TCP 和 UDP 可以同时绑定相同的端口吗? 其实我感觉这个问题「TCP 和 UDP 可以同时监听相同的端口吗?」表述有问题,这个问题应该表述成「TCP 和 UDP

chenxuyuana的博客 3978

windows下测试TCP/UDP端口连通性

1、Advanced Port Scanner比较直观,tcp跟udp都能测;2、如果不想用工具,tcp用ssh或者curl都行,udp就根据情况吧windows下测试TCP/UDP端口连通性 - MaQaQ - 博客园。

MaQuQ的博客 6118

TCP/UDP 相关的端口问题详解

TCP/UDP相关端口问题详解

qq_39329062的博客 2922

TCP/UDP端口连接测试

TCP/UDP端口连接测试 TCP端口连接测试 测试主机与目标端口的网络是否通畅 telnet ip port UDP端口连接测试 1.测试目标端口是否正常(前提是目标主机上启动了服务端口,且本机与服务端网络通畅的情况): nc -vuz ip port 2.向UDP端口发送消息: nc -vu ip port 3.通过抓包命令进行抓包,接收UDP端口抓包: tcpdump -i eth0 -s 0 port 80 (注:抓包需要root权限) ...

Sallystar的专栏 9208
newspoint
博客等级 码龄26年 3粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值