/* Program to shutdown sockets for a specified address */ /* USAGE: killuser address */ /* EXAMPLE: killuser 193.232.101.112 */ if \RxFuncQuery("SockLoadFuncs") then nop else do call RxFuncAdd "SockLoadFuncs","rxSock","SockLoadFuncs" call SockLoadFuncs end If (ARG() = 0) Then Do Say "USAGE: killuser address" Say "EXAMPLE: killuser 193.232.101.112" Exit End Parse Arg addr_to_kill Address Cmd '@netstat -s |RXQUEUE > NUL' Lines = Queued(); j = 0 Do i=1 To Lines Pull s . . . t . If DATATYPE(s)=NUM Then Do j = j + 1 sock.j = s client.j = t; End End k = 0 Do i = 1 To j If (Pos(addr_to_kill, client.i) <> 0) Then Do k = k + 1 rc = SockShutdown(sock.i, 2) Say FORMAT(sock.i, 5) " from " client.i " now SHUTDOWN" End End Say k "sockets are shutdown" Exit