Имя: Пароль:
1C
1С v8
Сканирование сетевого порта
0 Slon747
 
15.03.17
14:52
Как можно средствами 1С (возможно используя WScript.Shell) проверить, открыт ли сетевой порт?
1 Slon747
 
16.03.17
17:42
up.
2 Garykom
 
гуру
16.03.17
18:09
какой порт? там откуда сканируем (не блочит ли файрвол) или на удаленном компе?

Может сначала слегка в теории разобраться а? Потом и глупые/смешные вопросы пропадут сами
3 Serginio1
 
16.03.17
18:19
public static int GetAvailablePort(int port)
        {

            IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
            TcpConnectionInformation[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();

            var set = new HashSet<int>();
            foreach (TcpConnectionInformation tcpi in tcpConnInfoArray)
            {
                set.Add(tcpi.LocalEndPoint.Port);
              
            }

            for(var i=port; i< 49152; i++)
            {
                if (!set.Contains(i))
                    return i;


            }

            return port;


        }
4 Garykom
 
гуру
16.03.17
18:26
(3) И каким образом это "получение списка всех в теквремя используемых локальных портов, затем возврат минимального неиспользуемого номера порта" поможет ТС?
5 Garykom
 
гуру
16.03.17
18:28
(4)+ блин хотя бы цикл с 1024 сделать чтобы проблемы не огрести заняв своим софтом некий стандартный порт
6 Ufo_Attack
 
16.03.17
18:57
(0) Какую задачу решаешь?
7 Slon747
 
17.03.17
09:37
(6) Проверить, открыт ли сетевой порт на другом пк в локальной сети.
8 eklmn
 
гуру
17.03.17
10:11
shell = wscript.createobject("wscript.shell")
shell.run "powershell -command (New-Object System.Net.Sockets.TcpClient).Connect('SERVER', PORT)"
9 eklmn
 
гуру
17.03.17
10:13
+telnet client не забудь установить в стандартных виндовсах
10 Garykom
 
гуру
17.03.17
12:27
(7) Прикинь он там может быть открыт (не запрещен доступ по нему) но его никто не слушает
11 abibas
 
17.03.17
12:39
Function ScanPort(Host, Port)

    Set x = CreateObject("MSWINSOCK.Winsock.1")

    x.RemoteHost = Host
    
    x.RemotePort = Port
    x.Connect

    count = 0
    State = x.State
    Pause = 0
    Do While x.State <> 7
        If count = 10 Then
            Exit Do
        End if    
        Pause = Pause + 10
        count = count + 1
        wscript.sleep(Pause)    
    Loop    
    
    ScanPort = x.State
    
    Set x = Nothing

End Function

ScanPort = 7 порт открыт, другое - закрыт.

В 1С уже сам перенесешь?
AdBlock убивает бесплатный контент. 1Сергей