Usa Powershell como un jefe

Usa Powershell como un jefe

¿Qué usa la gente cuando Telnet no está instalado para comprobar que un puerto está abierto y accesible? Por ejemplo, solía utilizar la técnica de telnet <destination>y sabía que estaba ahí, incluso si telnet no podía interactuar con el sistema en el otro extremo.

Con Windows 2008 telnet no está instalado así que he estado un poco perdido. Entonces, ¿qué puedo usar en su lugar? Y algo si no está en Linux o Solaris, también, por favor.

Soy un consultor que trabaja en diferentes sitios. Por varias razones (derechos de acceso, tiempos de control de cambios, si lo instalo alguien lo usa el próximo año tenemos cierta responsabilidad, etc.) no puedo instalarlo en el servidor de otra persona. Pero un USB u otra herramienta independiente y no instalada sería maravilloso...

Respuesta1

Usa Powershell como un jefe


código básico

$ipaddress = "4.2.2.1"
$port = 53
$connection = New-Object System.Net.Sockets.TcpClient($ipaddress, $port)

if ($connection.Connected) {
    Write-Host "Success"
}
else {
    Write-Host "Failed"
}

Un trazador de líneas

PS C:\> test-netconnection -ComputerName 4.2.2.1 -Port 53

Conviértelo en un cmdlet

[CmdletBinding()]
Param(
  [Parameter(Mandatory=$True,Position=1)]
   [string]$ip,
    
   [Parameter(Mandatory=$True,Position=2)]
   [int]$port
)

$connection = New-Object System.Net.Sockets.TcpClient($ip, $port)
if ($connection.Connected) {
    Return "Connection Success"
}
else {
    Return "Connection Failed"
}

Guárdelo como script y úselo todo el tiempo.

Luego usas el comando en tu powershell o cmd de esta manera:

PS C:\> telnet.ps1 -ip 8.8.8.8 -port 53

o

PS C:\> telnet.ps1 8.8.8.8 53

Respuesta2

A continuación se muestran varias formas diferentes de probar un puerto TCP sin telnet.

INTENTO(página de manual)

# cat < /dev/tcp/127.0.0.1/22
SSH-2.0-OpenSSH_5.3
^C

# cat < /dev/tcp/127.0.0.1/23
bash: connect: Connection refused
bash: /dev/tcp/127.0.0.1/23: Connection refused


rizo

# curl -v telnet://127.0.0.1:22
* About to connect() to 127.0.0.1 port 22 (#0)
*   Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 22 (#0)
SSH-2.0-OpenSSH_5.3
^C

# curl -v telnet://127.0.0.1:23
* About to connect() to 127.0.0.1 port 23 (#0)
*   Trying 127.0.0.1... Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host


Pitón

# python
Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> clientsocket.connect(('127.0.0.1', 22))
>>> clientsocket.send('\n')
1
>>> clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> clientsocket.connect(('127.0.0.1', 23))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused


perla

# perl
use IO::Socket::INET;
$| = 1;
my $socket = new IO::Socket::INET(
  PeerHost => '127.0.0.1',
  PeerPort => '22',
  Proto => 'tcp',
);
die "cannot connect to the server $!\n" unless $socket;
print "connected to the server\n";
^D
connected to the server

información relacionada