Jak można odczytać Adres IP + hostname lokalnego hosta z apletu??

0

Jak w temacie, gdy używam poniższego kodu z poziomu apletu:

InetAddress addr = InetAddress.getLocalHost();
JOptionPane.showMessageDialog(null, addr.getHostName()+ " - "+addr.getHostAddress());


wyświetla mi: localhost - 127.0.0.1.

Aplety nie mają dostępu do informacji na temat komputera użytkownika, poza numerem wersji Javy czy nazwą OSa. Czy nie ma jednak możliwości, żeby do tych informacji sie dostać?? Z góry dzięki:)
0

public static InetAddress getLocalHost()
throws UnknownHostExceptionReturns the local host.

If there is a security manager, its checkConnect method is called with the local host name and -1 as its arguments to see if the operation is allowed. If the operation is not allowed, an InetAddress representing the loopback address is returned.

Podpisz aplet

0

Czy to konieczne?? Case jest taki: na serwerze intranetowym ma działać serwer www (np. Tomcat), zawierający aplet. Gdy użytkownicy intranetu odpalają ten aplet w przeglądarce powinno być możliwe zapisanie w pliku na serwerze www danych dotyczących informacji o komputerze użytkownika, który ten aplet odpalił. W jaki sposób możnaby to najprościej zrealizować??

0

Po co Ci lokalny adres? to jest zupełnie bezużyteczna informacja...
zewn adres klienta zna przecież twój serwer, a sam klient swojego zewn adresu nie (tylko ten lokalny)

0

Nie, nie, chodzi o to żeby np. gdy user np. Jan Kowalski odpali aplet, to żeby do serwera www z którego pochodzi ten aplet poszła informacja np. 20:36 PCJKOWALSKI:10.133.5.14 has run the applet itp. i żeby ta informacja zapisała sie w pliku tekstowym na tym serwerze www.

0

I po co do tego applet?

0

Założenie jest takie że obsluga musi być przez przeglądarkę. Przykład powyższy jest oczywiście ogólny, poza tymi informacjami są jeszcze inne dane, zbierane z komponentów graficznych tego apletu (JTextArea itp.) + obsługa wysyłania poczty na podstawie tych danych itp. No chyba że masz inny pomysł, jak można to prosto zrobić:)

0

Ok, po podpisaniu apletu jest wszystko jest cacy, mam już dostęp do tych informacji, pytanie teraz - mając już te dane jak najprościej zapisać tego Stringa do konkretnego pliku na web serwerze?? Chyba aplet nie może tak po prostu modyfikować plik na serwerze, potrzebna jest jakaś obsługa do tego po stronie serwera, czyż nie?? Jak to można najprościej zrobić?? Po odpaleniu apletu przez usera w pliku tekstowym na serwerze www powinny być informacje typu:
10:36 PCJKOWALSKI (10.12.12.12) has run the applet
10:36 PCAMALINOWSKI (232.12.12.14)has run the applet
10:41 PCAKWIATEK (122.99.122.12) has run the applet

0

Możesz wysłać odpowiednie żądanie HTTP (np. poprzez polecenie GET), np.: http://twoj_serwer.pl/zapisz.php?name=PCJKOWALSKI&ip=10.12.12.12 dla pewnego skryptu w PHP (zakładam ten język, bo jest po prostu popularny).

0

Ok, a czy np. robienie tego po socketach ma w ogóle sens??:)

0

Spróbuj tak: utwórz url (typu URL) opisujący plik na serwerze, potem url.openConnection().getOutputStream(), a potem to już z górki.

0

Ale po stronie serwera i tak jakieś skrypty CGI muszą być, które to obsłużą i zapiszą do pliku.

0

Sprawdziłem, moja propozycja

 url=new URL(getDocumentBase(),"Test.txt");
 OutputStream os=url.openConnection().getOutputStream();
 os.write("dupa".getBytes());
 os.close();

generuje wyjątek java.net.UnknownServiceException: protocol doesn't support output.
Wykonanie skryptu przez aplet działa i wygląda tak (testowałem na skryptach PHP):

  url=new URL(adresSkryptu);
  getAppletContext().showDocument(url);
0

Dzięki bo, a czy mógłbyś jeszcze dołączyć ten skrypcik w php??:) Byłbym zobowiązany;).

0
<?php
    //Jeśli zapis się nie powiódł wyświetl komunikat o niepowodzeniu
    if(file_put_contents('./plik.txt', 'Dopisana treść', FILE_APPEND) == 0)
    {
        echo 'jajo';
    }
    header("Location: Zapisz.html")
?>

Zapisz.html, to plik z apletem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1