Что нового

[Сеть, интернет] Отключить интернет процессу на время

zerobot

Новичок
Сообщения
78
Репутация
0
Как через autoit отключить процессу интернет на пару миллисекунд ? ???
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
zerobot

Если процесс внешний то групповыми политиками.
 
Автор
Z

zerobot

Новичок
Сообщения
78
Репутация
0
Быть может поможете и кодом? :beer:
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
zerobot
А обязательно на пару миллисекунд и через скрипт? Можно же через FireWall'ы какие нибудь.
 
Автор
Z

zerobot

Новичок
Сообщения
78
Репутация
0
Задача именно на очень короткий период времени, буквально 1-2 миллисекунда. И нужно именно через скрипт, без левых громоздких утилит.
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
В голову приходит только "сменить на левый"/"скинуть вообще" IP адрес сетевого адаптера. Далее "sleep" и вернуть IP на адаптере.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
наверное начать с этих тем
http://autoit-script.ru/index.php?topic=1237.
http://autoit-script.ru/index.php?topic=2025.0
нужно знать через какой порт подключился процесс и закрыть его. но это мы можем узнать если процесс подключился. и если закрыть этот порт, то не будет ли подключение через другой?
 
Автор
Z

zerobot

Новичок
Сообщения
78
Репутация
0
Огромное спасибо, очень помогли.
Вот нашел в одной из тем что вы дали, вот эту функцию:
Код:
Func _DisableConnection($lIP,$lP,$rIP,$rP)
$hIPHLPAPI = DllOpen("iphlpapi.dll")
    Local $tMIB_TCPROW = DllStructCreate("dword State;" & _
            "dword LocalAddr;" & _
            "dword LocalPort;" & _
            "dword RemoteAddr;" & _
            "dword RemotePort")

    DllStructSetData($tMIB_TCPROW, "State", 12) ; MIB_TCP_STATE_DELETE_TCB

Local $aIPLocal = StringSplit($lIP, ".")
$iIPLocal = Dec(Hex($aIPLocal[4], 2) & Hex($aIPLocal[3], 2) & Hex($aIPLocal[2], 2) & Hex($aIPLocal[1], 2))

DllStructSetData($tMIB_TCPROW, "LocalAddr", $iIPLocal)

$iPortLocal = Dec(Hex(BinaryMid(Number($lP), 1, 2)))
;~ $iPortLocal ='0'
    DllStructSetData($tMIB_TCPROW, "LocalPort", $iPortLocal)

            Local $aIPRemote = StringSplit($rIP, ".")
            $iIPRemote = Dec(Hex($aIPRemote[4], 2) & Hex($aIPRemote[3], 2) & Hex($aIPRemote[2], 2) & Hex($aIPRemote[1], 2))


    DllStructSetData($tMIB_TCPROW, "RemoteAddr", $iIPRemote)

    Local $aPortRemote = StringRegExp($rP, "\A\d{1,5}", 3)

        $iPortRemote = Dec(Hex(BinaryMid(Number($aPortRemote[0]), 1, 2)))


    DllStructSetData($tMIB_TCPROW, "RemotePort", $iPortRemote)

    Local $aCall = DllCall($hIPHLPAPI, "int", "SetTcpEntry", "ptr", DllStructGetPtr($tMIB_TCPROW))

    If @error Or $aCall[0] Then
        Return SetError(2, 0, 0)
    EndIf

    Return 1

EndFunc   ;==>_DisableConnection


Как понимаю здесь:
$lIP - локальный ип
$lP - локальный порт
$rIP - удаленный ип
$rP - удаленный порт

Функция блокирует порт, а как разблокировать кто-нибудь может подсказать?
 
Верх