код для отбрасывания пакетов на конкретном порту с использованием VB - PullRequest
0 голосов
/ 02 апреля 2010

этот код предполагается использовать в VB. номер порта и IP-адрес доступны. Как предотвратить входящие пакеты, должно быть известно. Это похоже на работу FireWall.

1 Ответ

0 голосов
/ 08 июня 2010

Ура собственный Персональный FIREwall !!


Вот пример кода VB6, с которого можно начать.

Он использует элемент управления winsock для открытия и подключения к самому порту.

Тем самым он автоматически отказывает в доступе к порту другим процессом.

Public Type MIB_TCPROW
dwState As Long
dwLocalAddr As Long
dwLocalPort As Long
dwRemoteAddr As Long
dwRemotePort As Long
End Type

Public Type MIB_TCPTABLE
dwNumEntries As Long
table(100) As MIB_TCPROW
End Type

Public MIB_TCPTABLE As MIB_TCPTABLE

Public Declare Function GetTcpTable Lib "iphlpapi.dll" (ByRef pTcpTable As
MIB_TCPTABLE, ByRef pdwSize As Long, ByVal bOrder As Long) As Long
Public Declare Function SetTcpEntry Lib "IPhlpAPI" (pTcpRow As MIB_TCPROW)
As Long
Public Declare Function ntohs Lib "WSOCK32.DLL" (ByVal netshort As Long) As
Long


Public Sub BlockPort


Dim LTmp As Long
Dim x As Integer, i As Integer, n As Integer
Dim RemP As String
Dim tcpt As MIB_TCPTABLE

LTmp = Len(MIB_TCPTABLE)
GetTcpTable tcpt, LTmp, 0
x = tcpt.dwNumEntries

For i = 0 To tcpt.dwNumEntries - 1

RemP = ntohs(tcpt.table(i).dwRemotePort)

If RemP = "8080" And tcpt.table(i).dwState <> 2 Then
tcpt.table(i).dwState = 12
SetTcpEntry tcpt.table(i)
End If

Next i

End Sub

Если вы ищете более простой способ заблокировать один порт, то:

  • Используйте элемент управления Winsock в форме VB.

  • Установите в свойстве localport номер порта, который хотите заблокировать

Полный справочник Winsock для VB6 здесь

... и это ЭТО !! Ваш личный брандмауэр включен !!

GOODLUCK !!
- CVS

...