Use o Powershell como um chefe

Use o Powershell como um chefe

O que as pessoas usam quando o Telnet não está instalado para verificar se uma porta está aberta e acessível? Por exemplo, eu costumava usar a técnica telnet <destination>e sabia que ela estava lá, mesmo que o telnet não pudesse interagir com o sistema do outro lado.

Com o Windows 2008, o telnet não está instalado, então fiquei um pouco perdido. Então, o que posso usar? E algo se não estiver presente no Linux ou Solaris também, por favor.

Sou um consultor que trabalha em diversos sites. Por uma série de razões (direitos de acesso, tempos de controle de alterações, se eu instalar, alguém usar no próximo ano, teremos alguma responsabilidade, etc.), não posso instalar no servidor de outra pessoa. Mas um USB ou outra ferramenta independente e não instalada seria maravilhoso ...

Responder1

Use o Powershell como um chefe


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"
}

Um forro

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

Transforme-o em um 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"
}

Salve como um script e use sempre

Em seguida, você usa o comando no prompt do PowerShell ou cmd da seguinte forma:

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

ou

PS C:\> telnet.ps1 8.8.8.8 53

Responder2

Aqui estão várias maneiras diferentes de testar uma porta TCP sem telnet.

BASH(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


ondulação

# 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ão

# 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


Perl

# 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

informação relacionada