मुझे एक ऐसे मशीन के बारे में एक परीक्षक से फोन आया जो हमारे सॉफ़्टवेयर को विफल कर रहा था। जब मैंने समस्या मशीन की जांच की, तो मुझे जल्दी से एहसास हुआ कि समस्या काफी कम स्तर थी: इनबाउंड नेटवर्क यातायात ठीक काम करता है। पिंग और एसएसएच जैसे मूल आउटबाउंड कमांड ठीक काम कर रहे हैं, लेकिन connect()
कॉल से जुड़ी कुछ भी "होस्ट करने के लिए कोई रास्ता नहीं" के साथ विफल रही है।
उदाहरण के लिए - यह विशेष मशीन पर यह प्रोग्राम 127.0.0.1
के अलावा किसी भी आईपी पते के लिए कनेक्ट()
कथन पर असफल हो जाएगा:
#!/usr/bin/perl -w
use strict;
use Socket;
my ($remote,$port, $iaddr, $paddr, $proto, $line);
$remote = shift || 'localhost';
$port = shift || 2345; # random port
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
die "No port" unless $port;
$iaddr = inet_aton($remote) || die "no host: $remote";
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
connect(SOCK, $paddr) || die "connect: $!";
while (defined($line = )) {
print $line;
}
close (SOCK) || die "close: $!";
exit;
इस मशीन को तोड़ने के बारे में कोई सुझाव? यह एसयूएसई -10.2 चल रहा है।