le1t00
(Leito)
27 Marzec 2009 12:24
#1
Witam serdecznie,
chciałem napisać pewien program co będzie otwierać putty z wcześniej zdefiniowanym adresem IP, lecz za żadne skarby nie działają zmienne w system().
Istnieje jakiś sposób, aby dało się wykonać to co chcę?
Dodatkowo, jak zrobić, aby wpisać komendy do putty z wcześniej zdefiniowanego formularza?
Tzn. podaje adres IP, wartość 1, wartość 2, następnie włącza się putty z podanym ip, wpisuję hasło, a następnie wykonuje w/w wartości?
No chyba, że łatwiej było by to zrobić w Delphi to się go poduczę, choć sprawa jest pilna
Windows Xp Sp3, DevC++
kalin93
(Kalin 93)
27 Marzec 2009 12:37
#2
Jeśli masz już coś napisane to pomogę, jeśli pisać od podstaw to za pewną sumkę mogę napisać taki program
le1t00
(Leito)
27 Marzec 2009 12:41
#3
Raczej, chciałbym by tylko ktoś mnie nakierował, albo coś doradził…
– Dodane 27.03.2009 (Pt) 15:23 –
Mam taki kod:
#include
int main(int argc,char *argv[])
{
int channel1, i;
const char* result;
ne7ssh *_ssh = new ne7ssh();
_ssh->setOptions ("aes192-cbc", "hmac-md5");
channel1 = _ssh->connectWithPassword ("192.168.1.103", "root", "alpine");
_ssh->send ("netstat -na\n", channel1)
delete _ssh;
return EXIT_SUCCESS;
}
jednak hasło muszę i tak ręcznie wprowadzać przez co plecenie netstat -na\n już sie nie wykonuje jakaś pomoc?
Dodam, że łączę się z iPhone
schabik
(Jam1234)
27 Marzec 2009 14:32
#4
Kompletny strzał. Zamiast LF ("\n") spróbuj pełnej sekwencji CR LF ("\r\n"). Pojęcia nie mam czy coś da, natomiast wiem, że w wielu przypadkach oczekiwane są dwa bajty zamiast jednego…
le1t00
(Leito)
27 Marzec 2009 14:36
#5
akurat to był tylko przykład polecenia, obojętnie co nie podam, czy to ls. Po prostu chyba przez to powtórne wpisanie hasła reszta jest ignorowana.
schabik
(Jam1234)
27 Marzec 2009 14:50
#6
Nie znam tej biblioteki. Może trzeba badać co zwracają funkcje? Jak znam życie jakieś komunikaty o błędach można pewnie uzyskać…
Rzut oka na google i oto mamy (po pierwsze trzeba poczekać na terminal
// Initiate a connection.
channel1 = _ssh-connectWithPassword ("remoteHost", 22, "remoteUsr", "password", true, 30);
if (channel1 0)
{
const char *errmsg = _ssh-errors()-pop();
if (errmsg == NULL)
errmsg = "";
printf ("Thread1. Connection failed with last error: %s\n\n", errmsg);
continue;
}
// Wait for bash prompt, or die in 5 seconds.
if (!_ssh-waitFor (channel1, " $", 5))
{
const char *errmsg = _ssh-errors()-pop(channel1);
if (errmsg == NULL)
errmsg = "";
printf ("Failed while waiting for remote shell wiht last error: %s\n\n", errmsg);
_ssh-close(channel1);
continue;
}
// Send "ls" command.
if (!_ssh-send ("ls -al\n", channel1))
{
const char *errmsg = _ssh-errors()-pop(channel1);
if (errmsg == NULL)
errmsg = "";
printf ("Could not send the command. Last error: %s\n\n", errmsg);
_ssh-close(channel1);
continue;
}
le1t00
(Leito)
27 Marzec 2009 15:00
#7
Ehh… teraz odpaliłem poprzedni pik i biblioteka nie działa
Dlaczego wcześniej dzialało, a teraz, że z includowanej biblitoeki plik /botan/bulid.h nie istenieje?
A może jest jakis innny sposób na ssh z telefonem, może inna biblioteka?