powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Блокировка TCP портов
9 сообщений из 9, страница 1 из 1
Блокировка TCP портов
    #34599324
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый всем.

Как на VB можно взять под котроль TCP порты (блокировать и разблокировать)?
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34599341
PaulD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Google: "API VB TCP porty blokirovat"
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34599674
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulDGoogle: "API VB TCP porty blokirovat"

Я смотрел, там ничего конкретного нету.
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34599716
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost_X

Ищите инфу по API функциям GetTcpTable и SetTcpEntry
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34600121
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lena_#### Ghost_X

Ищите инфу по API функциям GetTcpTable и SetTcpEntry


Спасибо это уже кое-что. Нашел пример с использованием этих функций, буду разбираться.
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34600846
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost_X lena_#### Ghost_X

Ищите инфу по API функциям GetTcpTable и SetTcpEntry


Спасибо это уже кое-что. Нашел пример с использованием этих функций, буду разбираться.


А поделиться можешь? Примером
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34600875
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'--------------------------------------------------------------------------------
'This project needs a command button (Command1), and a listview (Listview1).
'--------------------------------------------------------------------------------

Option Explicit

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

Private Const ERROR_SUCCESS As Long = 0
Private Const MIB_TCP_STATE_CLOSED As Long = 1
Private Const MIB_TCP_STATE_LISTEN As Long = 2
Private Const MIB_TCP_STATE_SYN_SENT As Long = 3
Private Const MIB_TCP_STATE_SYN_RCVD As Long = 4
Private Const MIB_TCP_STATE_ESTAB As Long = 5
Private Const MIB_TCP_STATE_FIN_WAIT1 As Long = 6
Private Const MIB_TCP_STATE_FIN_WAIT2 As Long = 7
Private Const MIB_TCP_STATE_CLOSE_WAIT As Long = 8
Private Const MIB_TCP_STATE_CLOSING As Long = 9
Private Const MIB_TCP_STATE_LAST_ACK As Long = 10
Private Const MIB_TCP_STATE_TIME_WAIT As Long = 11
Private Const MIB_TCP_STATE_DELETE_TCB As Long = 12

Private Declare Function GetTcpTable Lib "iphlpapi.dll" (ByRef pTcpTable As Any, ByRef pdwSize As Long, ByVal bOrder As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dst As Any, src As Any, ByVal bcount As Long)

Private Declare Function lstrcpyA Lib "kernel32" (ByVal RetVal As String, ByVal Ptr As Long) As Long

Private Declare Function lstrlenA Lib "kernel32" (ByVal Ptr As Any) As Long

Private Declare Function inet_ntoa Lib "wsock32.dll" (ByVal addr As Long) As Long

Private Declare Function ntohs Lib "wsock32.dll" (ByVal addr As Long) As Long


Public Function GetInetAddrStr(Address As Long) As String

GetInetAddrStr = GetString(inet_ntoa(Address))

End Function


Private Sub Form_Load()

With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "Local IP Address"
.ColumnHeaders.Add , , "Local Port"
.ColumnHeaders.Add , , "Remote IP Address"
.ColumnHeaders.Add , , "Remote Port"
.ColumnHeaders.Add , , "Status "
End With

End Sub


Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)

ListView1.SortKey = ColumnHeader.Index - 1
ListView1.SortOrder = Abs(Not ListView1.SortOrder = 1)
ListView1.Sorted = True

End Sub


Public Function GetString(ByVal lpszA As Long) As String

GetString = String$(lstrlenA(ByVal lpszA), 0)
Call lstrcpyA(ByVal GetString, ByVal lpszA)

End Function


Private Sub Command1_Click()

Dim TcpRow As MIB_TCPROW
Dim buff() As Byte
Dim lngRequired As Long
Dim lngStrucSize As Long
Dim lngRows As Long
Dim lngCnt As Long
Dim strTmp As String
Dim lstLine As ListItem

Call GetTcpTable(ByVal 0&, lngRequired, 1)

If lngRequired > 0 Then
ReDim buff(0 To lngRequired - 1) As Byte
If GetTcpTable(buff(0), lngRequired, 1) = ERROR_SUCCESS Then
lngStrucSize = LenB(TcpRow)
'first 4 bytes indicate the number of entries
CopyMemory lngRows, buff(0), 4

For lngCnt = 1 To lngRows
'moves past the four bytes obtained above
'to get data and cast into a TcpRow stucture
CopyMemory TcpRow, buff(4 + (lngCnt - 1) * lngStrucSize), lngStrucSize
'sends results to the listview

With TcpRow
Set lstLine = ListView1.ListItems.Add(, , GetInetAddrStr(.dwLocalAddr))
lstLine.SubItems(1) = ntohs(.dwLocalPort)
lstLine.SubItems(2) = GetInetAddrStr(.dwRemoteAddr)
lstLine.SubItems(3) = ntohs(.dwRemotePort)
lstLine.SubItems(4) = (.dwState)
Select Case .dwState
Case MIB_TCP_STATE_CLOSED: strTmp = "closed"
Case MIB_TCP_STATE_LISTEN: strTmp = "listening"
Case MIB_TCP_STATE_SYN_SENT: strTmp = "sent"
Case MIB_TCP_STATE_SYN_RCVD: strTmp = "received"
Case MIB_TCP_STATE_ESTAB: strTmp = "established"
Case MIB_TCP_STATE_FIN_WAIT1: strTmp = "fin wait 1"
Case MIB_TCP_STATE_FIN_WAIT2: strTmp = "fin wait 1"
Case MIB_TCP_STATE_CLOSE_WAIT: strTmp = "close wait"
Case MIB_TCP_STATE_CLOSING: strTmp = "closing"
Case MIB_TCP_STATE_LAST_ACK: strTmp = "last ack"
Case MIB_TCP_STATE_TIME_WAIT: strTmp = "time wait"
Case MIB_TCP_STATE_DELETE_TCB: strTmp = "TCB deleted"
End Select
lstLine.SubItems(4) = lstLine.SubItems(4) & "( " & strTmp & " )"
strTmp = ""
End With

Next

End If
End If

End Sub
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34601173
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, что делишься, а то тут некоторые ...
...
Рейтинг: 0 / 0
Блокировка TCP портов
    #34602690
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист ДёняСпасибо, что делишься, а то тут некоторые ...

Да пожалуйсто, просто я долго отсутствовал.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
Option Explicit

Private Type MIB_TCPROW
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_Table( 120 ) As MIB_TCPROW
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
Dim 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 )

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: "

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: "
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 "1": End
Case  87 :
MsgBox "2": End
Case  111 &:
MsgBox "3": End
Case  232 &:
MsgBox "4": End
End Select
End Sub


Private Sub Command1_Click()
Dim Return1 As Long
If Combo1.ListIndex <  0  Then Exit Sub

TCP1.TCP_Table(Combo1.ListIndex).dwState =  12 
 
Return1 = SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex))
If Return1 =  0  Then
MsgBox "11"
Else
MsgBox "22"
End If
Timer1_Timer
End Sub
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Блокировка TCP портов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]