
Was verwenden die Leute, wenn Telnet nicht installiert ist, um zu prüfen, ob ein Port geöffnet und erreichbar ist? Ich habe beispielsweise früher die Technik von verwendet telnet <destination>
und wusste, dass er da war, auch wenn Telnet nicht mit dem System am anderen Ende interagieren konnte.
Unter Windows 2008 ist Telnet nicht installiert, daher bin ich etwas ratlos. Was kann ich also stattdessen verwenden? Und bitte auch etwas, falls es unter Linux oder Solaris nicht vorhanden ist.
Ich bin Berater und arbeite an verschiedenen Standorten. Aus verschiedenen Gründen (Zugriffsrechte, Änderungskontrollzeiten, wenn ich es installiere und es im nächsten Jahr jemand anderes verwendet, tragen wir eine gewisse Haftung usw.) kann ich es nicht auf dem Server einer anderen Person installieren. Aber ein USB-Stick oder ein anderes eigenständiges, nicht installiertes Tool wäre wunderbar ...
Antwort1
Verwenden Sie Powershell wie ein Profi
Basiscode
$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"
}
Einzeiler
PS C:\> test-netconnection -ComputerName 4.2.2.1 -Port 53
Wandeln Sie es in ein Cmdlet um
[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"
}
Als Skript speichern und jederzeit verwenden
Anschließend verwenden Sie den Befehl in Ihrer Powershell oder Eingabeaufforderung wie folgt:
PS C:\> telnet.ps1 -ip 8.8.8.8 -port 53
oder
PS C:\> telnet.ps1 8.8.8.8 53
Antwort2
Hier sind verschiedene Möglichkeiten, einen TCP-Port ohne Telnet zu testen.
BASH(manpage)
# 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
cURL
# 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
Python
# 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