Страница: 1 | 2 |
Вопрос: Нужна помосч...
Добавлено: 10.04.07 13:46
Автор вопроса: killogin
у меня проблема небольшая, нужно вытащить информацию из винды, а конкретно активные интернет подключения (типа как netstat -n).Может что посоветуете.
Ответы
Всего ответов: 19
Номер ответа: 1
Автор ответа:
Black Berill
Вопросов: 17
Ответов: 151
Профиль | | #1
Добавлено: 10.04.07 15:08
Кажись, в примерах это есть
Номер ответа: 2
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #2
Добавлено: 10.04.07 15:37
Так и исползуй netstat -n
Тут на сайте где-то точно пример лежал как из консолного приложения инфу получить.
Например Shell "netstat -n > C:\123.txt"
Меня снова глючит или нет ника автора вопроса?
Номер ответа: 3
Автор ответа:
Black Berill
Вопросов: 17
Ответов: 151
Профиль | | #3
Добавлено: 10.04.07 16:15
блин, а ведь правда нет
Номер ответа: 4
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #4
Добавлено: 10.04.07 16:17
Пробел - самый лучший в мире ник.....
Номер ответа: 5
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #5
Добавлено: 10.04.07 16:40
У него 2 пробилф стоит.кТО ЗНАЕТ КАК К НИМУ ОБРАЩАТСА ОН НЕ УВИДИТ СВОЕГО ИМЕНИ.
Номер ответа: 6
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #6
Добавлено: 10.04.07 18:31
НИКАК не обращаться. Желает инкогнито, не хрен вопросы задавать.
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 10.04.07 20:36
GetTcpTable
Номер ответа: 8
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #8
Добавлено: 10.04.07 21:13
В догонку пример из Api Guide
'--------------------------------------------------------------------------------
'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
А автора будем звать "Эй ты, как тебя там" (с) Шматрица
Номер ответа: 9
Автор ответа:
Black Berill
Вопросов: 17
Ответов: 151
Профиль | | #9
Добавлено: 10.04.07 21:30
Паццталом
Номер ответа: 10
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #10
Добавлено: 10.04.07 23:30
А кого там так звали, а то я не смотрел?
Номер ответа: 11
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #11
Добавлено: 10.04.07 23:39
Там когда Морфеус (он же - Шоколадный Заяц) команду представлял, дал такую кличку Нео.
Номер ответа: 12
Автор ответа:
killogin
Вопросов: 5
Ответов: 23
Профиль | | #12
Добавлено: 11.04.07 05:54
да не знаю я почему ника нет.
Номер ответа: 13
Автор ответа:
killogin
Вопросов: 5
Ответов: 23
Профиль | | #13
Добавлено: 11.04.07 05:59
В примерах я нашел как из реестр вытаскивать эту информацию (RemoteAccess\Profile помоему), только дело в том что у себя я не могу найти этого раздела.
Номер ответа: 14
Автор ответа:
killogin
Вопросов: 5
Ответов: 23
Профиль | | #14
Добавлено: 11.04.07 06:01
О вроде с ником разобрался
Номер ответа: 15
Автор ответа:
killogin
Вопросов: 5
Ответов: 23
Профиль | | #15
Добавлено: 11.04.07 06:05
Если прога будет один раз выполнять эту команду, то такой вариант вполне сойдет, а вот если нужно постоянно следить, такой вариант не катит.