Страница: 1 |
|
Вопрос: CreateIpForwardEntry что ей надо ?
|
Добавлено: 05.09.05 11:37
|
|
Автор вопроса: student-uni
|
проблема
решил я модифицировать routing table без routing.exe
ну не красиво это как то сдавать программный продукт
с routing.exe
более того опасно для вирусов и тем более что есть
такая замечательная функция как CreateIpForwardEntry
Ей на вход всего то надо правильно заполнить
структуру MIB_IPFORWARDROW
Но заполнить надо все поля обязательно
Описание есть в МСДН
Часть полей я получаю программно. Спасибо SHARP
/смотрите топик GetAdaptersInfo инфо о второй сетевухе не могу пол /
Но некоторые поля мне в корне не понятны
А заполнять их похоже надо.
Поэтому иногда у меня добавление записи
в роутинг табле проходит идеально
а иногда - еррор 87 - ощибка параметра
Гляньте кто может короткий текст
Может скажет кто в чём проблема
Объяаляем структуру
Private Type MIB_IPFORWARDROW
dwForwardDest As Long
dwForwardMask As Long
dwForwardPolicy As Long
dwForwardNextHop As Long
dwForwardIfIndex As Long
dwForwardType As Long
dwForwardProto As Long
dwForwardAge As Long
dwForwardNextHopAS As Long
dwForwardMetric1 As Long
dwForwardMetric2 As Long
dwForwardMetric3 As Long
dwForwardMetric4 As Long
dwForwardMetric5 As Long
End Type
обяаляем апишки
Private Declare Function CreateIpForwardEntry Lib "IPHlpApi.dll" (ByRef pRoute As Any) As Long
Private Declare Function DeleteIpForwardEntry Lib "IPHlpApi.dll" (ByRef pRoute As Any) As Long
Private Declare Function inet_addr Lib "wsock32.dll" (ByVal HostName As String) As Long
пишем свою ф-ю
на вход ей :
- индкс интерфейса
- IP цели
- MASK
- Gateway
/смотрите топик GetAdaptersInfo инфо о второй сетевухе /
Public Function RouteAdd(ByVal sInterfaceIndex As Long, _
ByVal sForwardDestination As String, _
ByVal sForwardMask As String, _
ByVal sGateway As String) As Boolean
Dim IPForwardTable As MIB_IPFORWARDROW
заливаем структуру
With IPForwardTable
.dwForwardDest = inet_addr(sForwardDestination)
.dwForwardIfIndex = sInterfaceIndex
.dwForwardMask = inet_addr(sForwardMask)
.dwForwardNextHop = inet_addr(sGateway)
.dwForwardAge = 0 ' не понимаю
.dwForwardMetric1 = 1 '
.dwForwardProto = 3 ' не понимаю
.dwForwardPolicy = 0 ' не понимаю
.dwForwardType = 1 ' не понимаю
.dwForwardNextHopAS = 1 ' не понимаю
.dwForwardMetric2 = 1 ' не понимаю
.dwForwardMetric3 = 1 ' не понимаю
.dwForwardMetric4 = 1 ' не понимаю
.dwForwardMetric5 = 1 ' не понимаю
пункты которые не понятно откуда брать - отмечены "не понимаю"
остальные пункты Видны по route print
или можно вынуть с помощью листинга от SHARP
/смотрите топик GetAdaptersInfo инфо о второй сетевухе
If CreateIpForwardEntry(IPForwardTable) = 0 Then MsgBox "Routing Tabelle iymenena" Else: MsgBox "Oshibka nomer " & CreateIpForwardEntry(IPForwardTable)
End With
End Function
Private Sub Command1_Click()
Dim Result
Dim lngA As Long
lngA = CLng(Text1.Text)
Result = RouteAdd(lngA, Text2.Text, Text3.Text, Text4.Text)
End Sub
всем откликнувшимся спасибо
Ответить
|
Страница: 1 |
Поиск по форуму