Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Создание справочника Windows API

Страница: 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

всем откликнувшимся спасибо

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 05.09.05 14:14
Копай RFC 1354, там описано, что такое метрики и зачем они нужны

Ответить

Номер ответа: 2
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #2 Добавлено: 03.11.05 19:36
под XP работает а под WinServer 2003 нет Pomogite

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам