Hallo,
Hoe kan ik verbinding maken met een ssh server een een commando uitvoeren via ssh in php, of is dt niet mogelijk?
Alvast bedankt!
1.404 views
if ( array_key_exists(1, $argv) ){
$cfgServer = $argv[1];
}else{
echo "ex: 'php test.php 10.0.0.0' \n";
exit;
}
$cfgPort = 23; //port, 22 if SSH
$cfgTimeOut = 10;
$usenet = fsockopen($cfgServer, $cfgPort, $errno, $errstr), $cfgTimeOut);
if(!$usenet){
echo "Connexion failed\n";
exit();
}else{
echo "Connected\n";
fputs ($usenet, "password\r\n");
fputs ($usenet, "en\r\n");
fputs ($usenet, "password\r\n");
fputs ($usenet, "sh mac-address-table\r\n");
fputs ($usenet, " "); // this space bar is this for long output
// this skip non essential text
$j = 0;
while ($j<16){
fgets($usenet, 128);
$j++;
}
stream_set_timeout($usenet, 2); // set the timeout for the fgets
$j = 0;
while (!feof($usenet)){
$ret = fgets($usenet, 128);
$ret = str_replace("\r", '', $ret);
$ret = str_replace("\n", "", $ret);
if (ereg("FastEthernet", $ret)){
echo "$ret \n";
}
if (ereg('--More--', $ret) ){
fputs ($usenet, " "); // for following page
}
$info = stream_get_meta_data($usenet);
if ($info['timed_out']) {
$j++;
}
if ($j >2){
fputs ($usenet, "lo");
break;
}
}
}
echo "End.\r\n";
?>
Niet Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig deknop om je tekst aan te passen.
SanThe.
<?php
$connection = ssh2_connect('10.0.0.4', 22);
ssh2_auth_password($connection, 'user', 'pass');
$stream = ssh2_exec($connection, "echo test");
$result_err = stream_get_contents($stream, -1, -1);
echo $result_err ;
?>
SanThe schreef op 29.11.2008 15:56Als jij via ssh echo test doet dan staat dat op het scherm. Echter wel op de server dus.
Willem-Aart schreef op 29.11.2008 16:15[quote='SanThe schreef op 29.11.2008 15:56']Als jij via ssh echo test doet dan staat dat op het scherm. Echter wel op de server dus.
SanThe schreef op 29.11.2008 16:17[quote='Willem-Aart schreef op 29.11.2008 16:15'][quote='SanThe schreef op 29.11.2008 15:56']Als jij via ssh echo test doet dan staat dat op het scherm. Echter wel op de server dus.