![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
Witam. Zacząłem pisać skrypt który umożliwiałby połączenie się z kontem ssh ze strony, taki jakby putty. Zalążek skryptu działa, z małym aczkolwiek dla mnie dość istotnym wyjątkiem, mianowicie programy konsolowe jak np. mutt, ekg nie zwracają żadnych wyników. Skrypt wykonuje się ale efektów nie ma (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Możliwe jest napisanie takiego jakby putty w php??
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Odpowiadając na twoje pytanie, da się.
Zadaj odpowiednie pytanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
hehe.... fakt źle się wyraziłem zmęczenie daje o sobie znać (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) A więc: Jak zrobić aby programy konsolowe zwracały wyniki w formie tekstowej? (czyli żeby mój skrypt zwrócił wynik uruchomienia np. mutt-a ). w sieci w języku polskim jest naprawdę mało na temat ssh2...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Komentarz w manualu php
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
bim2 ty chyba nie masz pojęcia o czym piszesz... Programy konsolowe typu ekg,irssi mutt korzystają z bibliotek ncurses, więc jak już zdążyłem się dowiedzieć potrzebują dostępu do powłoki. A to na potwierdzenie moich słów:
Otwarłem więc powłokę i udało mi się uruchomić nawet ekg, niestety jest jakaś kolizja kodowania... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) no ale cała noc przedemną na googlowanie (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) Chyba że ktoś coś podpowie lub nakieruje? Oto skrypt: (sorki że taki chaotyczny, ale jeszcze na dobrą sprawę nie zacząłem go pisac)
Szkoda że na temat ssh2 w php jest tak mało na necie w języku polskim... Nie narzekam na znajomość angielskiego ale jakiś doświadczony programista mógłby wszystko ładnie nam opisać i wrzucić na php.pl (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Znalazłem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) wystarczy zmienić na domyślny "term_type" (kto by to wiedział (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) ):
Ten post edytował bagsiur 22.05.2009, 20:33:44 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Możesz zamiast ssh2 użyć jeszcze expect" title="Zobacz w manualu PHP" target="_manual
Powiem szczerze, że używałem ssh2 i ma jeszcze kilka niedociągnięć (m.in. problemy z kluczami do autoryzacji). Polecam expecta, gdyż daje trochę więcej możliwości (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
ehh nie przemyślałem wszystkiego wyglada na to że jednak z wykorzystaniem ssh2 nie napisze klienta ssh ze strony... Problem tkwi w tym że sesja w php nie może przechowywać zasobów.
Po odświeżeniu strony z zasobów robi nam sie int. Czy można według was to jakoś ominąć??( wiem że nie, ale pytam ) W php4 sesja bodajże mogła przechowywać zasoby. A co do expect, to nie znam tej bibliotek ale wygląda na to że trzeba będzie o niej poczytać... I nie wiem czy po przeczytaniu manuala osiagnę wymarzony efekt putty przez stronę. Więc teraz moje pytanie, czy ktoś próbował pisać coś takiego?? Jak tak to jakimi metodami osiągnął efekt?? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś co polecenie łączyś się od nowa z ssh (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
bim2 genialna myśl... pomyśl jak pogadasz z kumplem przez ekg jeśli cały czas otwierałbyś go na nowo?? Naprawdę nikt z użytkowników nie pisał czegoś takiego?? Za każdą pomoc byłbym wdzięczny... <help me>
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Bagsiur, nie wiedziałem co kombinujesz. Jedyne wyjście to przy rozpoczęciu skryptu robisz exec('php.exe -i connect.php'); (jakoś tak, nie pamiętam (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ). W connect.php łączysz się z kolegą i odbierasz tylko wiadomości. Po odebraniu wiadomości sprawdzasz w bazie czy nie ma jakiejś wiadomości w kolejce (którą dodajesz np ajaxem innym skryptem) i ją wysyłasz. Wtedy możesz odbierać wiadomości na okrągło i wysyłać, nie ma zastoju wyslanie -> odebranie -> wysłanie i ciągle jest połączenie z serwerem. Robisz też ajaxem jakby ping to bazy (np ustawieasz nowy time() ) i w connect.php sprawdzasz czy nie mineło 10sec od ostatniego pingu. Jeśli minęło to kończysz skrypt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
"Bagsiur, nie wiedziałem co kombinujesz." - i dalej nie wiesz... tworze klienta ssh. dla aplikacji korzystających z bibliotek ncurses (między innymi). Ale już raczej znalazłem rozwiązanie, jak skończę to wrzucę to na forum...
Ps. bim2 za bardzo ci zależy na nabijaniu postów. Starasz się pomagać rozumiem, ale kiedy nie jesteś w stanie pomóc, nie pisz... I zapoznaj się z jakims klientem ssh choćby konsolowym, to dowiesz się co chcę osiągnąć. Jedno jest pewne w php sie czegos takiego napisać nie da... nie przemyślałem tych zasobów w sesji (czuję się jak noob) |
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat ehh nie przemyślałem wszystkiego wyglada na to że jednak z wykorzystaniem ssh2 nie napisze klienta ssh ze strony... Problem tkwi w tym że sesja w php nie może przechowywać zasobów. A nie możesz zostawiać ekg na screenie? I wtedy łączyć się za każdym razem od nowa i dołączać do ID screena trzymanego w sesji. Poza tym, AFAIK z ekg można się komunikować przez zapisywanie do socketa w systemie plików. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
ekg to tylko przykład... naprawdę mi na nim nie zależy.... choć fakt, ze w przypadku ekg to pomysł zacny... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ten post edytował bagsiur 24.05.2009, 21:02:38 |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No to spróbuj ze screenem. [;
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Albo moim sposobem, choć screen chyba lepszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Moglby ktos przedstawic w sposob praktyczny jak mozna usyskac wlasnie takie podtrzymywanie 'sesji' polaczenia ssh2 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
W jaki sposob mozna przezkazac wskaznik do obiektu stworzonego przez ssh2_connect ? Drugie pytanie czy ktos wie jak pozbyc sie wszystkich znacznikow kolorow np. z `ls` w strumieniu otrzymanym z ssh2_shell ? Po trzecie, czy tez macie problemy z "stream_set_blocking($strumien, TRUE)" w polaczeniu z ssh2_shell ? Strona mi sie blokuje, dziwne bo w uzyciu z ssh2_exec dziala super Ten post edytował tompl 26.05.2009, 19:26:38 |
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Moglby ktos przedstawic w sposob praktyczny jak mozna usyskac wlasnie takie podtrzymywanie 'sesji' polaczenia ssh2 W jaki sposob mozna przezkazac wskaznik do obiektu stworzonego przez ssh2_connect ? W żaden. Wszystkie połączenia w PHP są podtrzymywane w ramach jednego wykonania, jeszcze nie spotkałem się z podtrzymywaniem na poziomie skryptów. Jak już, to działający proces w tle i odwoływanie się przez shm/sockety/pipe'y. Najlepiej będzie w Twoim przypadku odpalić ekg na screenie i za każdym połączeniem po prostu się pod niego podłączać. No prościej chyba się już nie da... Cytat Drugie pytanie czy ktos wie jak pozbyc sie wszystkich znacznikow kolorow np. z `ls` w strumieniu otrzymanym z ssh2_shell ? http://www.linuxquestions.org/questions/li...r-alias-278265/ - wychodzi na to, że musisz jedną zmienną środowiskową podmienić. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
http://www.linuxquestions.org/questions/li...r-alias-278265/ - wychodzi na to, że musisz jedną zmienną środowiskową podmienić. No i znak konca wiersza bo jest tez inny. Ale mniejsza o wiekszosc. W żaden. Wszystkie połączenia w PHP są podtrzymywane w ramach jednego wykonania, jeszcze nie spotkałem się z podtrzymywaniem na poziomie skryptów. Nie skromnie mowiac myslalem nad wykorzystaniem w pewien sposob php-cgi, tylko jak wtedy z tym skryptem się połaczyc jakimis socketem. Jestem ciekaw czym jest wskaznik do obiektu i czy by dalo sie go przekazac przy uzyciu np. pliku? Czyli skrypt spawdza czy jest plik/socket, jezeli nie utworzymy nowy. Jezeli jest pobieramy wskaznik do obiektu w pamieci. |
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Zadam Ci tylko jedno pytanie - czy wiesz, po co wymyślono screen? Po co tak kombinujesz?
Cytat Czyli skrypt spawdza czy jest plik/socket, jezeli nie utworzymy nowy. AFAIK musiałbyś pisać coś w stylu demona w jakimś języku nie-skryptowym... Cytat Jezeli jest pobieramy wskaznik do obiektu w pamieci. Podejrzewam, że zabezpieczenia/możliwości PHP nie pozwoliłyby na coś takiego. ;] |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zadam Ci tylko jedno pytanie - czy wiesz, po co wymyślono screen? Po co tak kombinujesz? Szczerze pierwsze slysze. AFAIK musiałbyś pisać coś w stylu demona w jakimś języku nie-skryptowym... Raczej by nie przeszło Podejrzewam, że zabezpieczenia/możliwości PHP nie pozwoliłyby na coś takiego. ;] Nie zgodze się, można do zmiennej przekazać wskaźnik do obiektu przez '&'. Pytanie czym jest taki wskaznik i jaki ma format (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował tompl 27.05.2009, 14:21:26 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:14 |