IP Adresse

Status
Nicht offen für weitere Antworten.

bernd

Bekanntes Mitglied
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.text.*;
/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 01.07.2004
  * @author Bernd  */

public class meinClient extends JFrame {
  // Anfang Variablen
  private JTextField jtfaus = new JTextField();
  private JButton jbusenden = new JButton();
  String chattext;
  String newline = System.getProperty("line.separator");
  //------------------------------------------------
   JScrollPane scrollPane = new JScrollPane();
  private JTextPane jtp1 = new JTextPane();
  // Ende Variablen

  public meinClient(final String title) {
    // Frame-Initialisierung
    super("UDP-Client");  // erzeugt den Fensternamen
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    setBounds(30, 30, 700, 450);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten
    jtfaus.setText("");
    jtfaus.setBounds(10, 340, 500, 25);
    getContentPane().add(jtfaus);
    jbusenden.setText("senden");
    jbusenden.setBounds(10, 370, 100, 25);
    getContentPane().add(jbusenden);
    jbusenden.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        jbusendenActionPerformed(evt); } });

     jtp1.setBounds(10, 30, 500, 300);
     jtp1.setEnabled(false);
     jtp1.setContentType("TEXT/RTF");
     jtp1.setText("Wilkommen im Chat" + newline);
     getContentPane().add(jtp1);
    
    scrollPane.setViewportView(jtp1);
    scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    scrollPane.setBounds(10, 30, 500, 300);
    getContentPane().add(scrollPane, BorderLayout.WEST);

    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void jbusendenActionPerformed(final ActionEvent evt) {
     chattext = jtfaus.getText();
        String strbuff = jtp1.getText();
        jtp1.setText(strbuff + chattext + newline); // Übergibt den Text zum JTextPane
        jtfaus.setText("");        // leert das Textfeld
        jtfaus.requestFocus ();   // macht das Textfeld wieder aktiv
     //----------------------------------------------------------------
      try
    {
      DatagramPacket packet;
      {
        InetAddress ia = InetAddress.getByName( "localhost" );
        String s = (chattext); //Dieser Text wird verschickt!
        packet = new DatagramPacket( s.getBytes(),s.length(),ia,4711 );
        DatagramSocket dSocket = new DatagramSocket();
        dSocket.send( packet );
        System.out.println( "Wird gesendet..." ); //  vor Fertigstellung entfernen?

      }

     }
    catch ( Exception e )  // Fehlerbehandlung
    {
      System.out.println( e );
    }
  }

  // Ende Ereignisprozeduren

  public static void main(final String[] args){ // Einstieg ins Programm
    new meinClient("meinClient");
  }
 }

Hallo zusammen, habe einen UDP-Client gebastelt der im lokalem Netzwerk auch sendenkann.
Wie aber sieht es aus wenn der Server nicht im lokalem Netzwerk sondern irgendwo ans Internet angeschlossen ist?
Welche IP Adresse braucht der Client vom Server, Die IP im lokalem Netz oder die IP vom Router der vor dem router geschaltet ist, oder die Internet IP????????
 

bernd

Bekanntes Mitglied
Das hatte ich mir auch so gedacht! Hab es ausprobiert funktioniert aber nicht.
Vielleicht braucht man doch die Internet IP!
Wie bekomme ich die denn am schnellsten raus? Wenn ich in der Eingabeaufforderung "ipconfig" eingebe bekomme ich ja nur die lokalen Adressen angezeigt.

MfG. Bernd
 

Grizzly

Top Contributor
Nachdem jetzt schon öfters Verwirrung über das TCP/IP Protokoll und dessen Funktionsweise aufgetreten sind (sowie die Arbeit eines Router bzw. einer Firewall), wäre ein kleines TCP/IP Tutorial angebracht, oder? :)
 

bernd

Bekanntes Mitglied
Tschuldige, aber jetzt bin ich ein wenig verwirrt!
Ich war der Meinung daß das Clientprogramm die IP Adresse von dem Computer auf dem das Serverprogramm läuft braucht. Und das erscheint mir eigentlich auch logisch!
( Und ich will nicht noch mehr Verwirrung stiften, ich spreche hier nicht von einer TCP/IP Verbindung, sondern von einer UDP Verbindung ).

MfG. Bernd
 

Grizzly

Top Contributor
bernd hat gesagt.:
Hallo zusammen, habe einen UDP-Client gebastelt der im lokalem Netzwerk auch sendenkann.
Wie aber sieht es aus wenn der Server nicht im lokalem Netzwerk sondern irgendwo ans Internet angeschlossen ist?
Welche IP Adresse braucht der Client vom Server, Die IP im lokalem Netz oder die IP vom Router der vor dem router geschaltet ist, oder die Internet IP????????

Einfach gesprochen: Er braucht die IP Adresse, unter der er den Server erreichen kann.
  • Wenn der Server im lokalen Netzwerk liegt, braucht er die lokale IP Adresse.
  • Läuft der Server jedoch im Internet, braucht er die IP Adresse, unter der der Server im Internet erreichbar ist.
  • Liegt der Server hinter einer Firewall, muss auf der Firewall ein Port-Forward auf den Server hinter der Firewall eingerichtet werden und die IP Adresse der Firewall angegeben werden.
 

meez

Top Contributor
meez hat gesagt.:
Das mein ich eigentlich....Du brauchst die IP, vom Rechner auf der der Client läuft...

Hmmm...natürlich die vom Server....;)
TCP/oder UDP habe hier erst mal keinen Einfluss, da die Wegfindung auf Layer 3 stattfindet.

Dein Client-Rechner wird die Zieladresse dem Defaultrouter schicken. Der wird entscheiden in wlechem Netz sie ist, und sie dann entsprechend weiterlieten...An den Server, oder zum nächsten Router....
 

bernd

Bekanntes Mitglied
Ah ja, das hatte ich mir eigentlich alles etwas einfacher vorgestellt!
Aber egal, da muss ich jetzt durch!!! :lol:
 

alshir

Mitglied
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

public class IPbehindaRouter {

   public static String getIP() {
      String line = "";
      BufferedReader in = null;
      int i = 0;
      try {
         URL getyouripurl = new URL( "http://www.whatismyip.com" );
         in = new BufferedReader( new InputStreamReader( getyouripurl
               .openStream() ) );
      } catch( MalformedURLException e ) {
         System.err.println( e );
      } catch( IOException e ) {
         System.err.println( e );
      }
      try {
         while( ( line = in.readLine() ) != null ) {
            if( line.startsWith( "<h1>Your IP is " ) ) {
               return line.substring( 15, ( line.length() - 10 ) );
            }
            i++ ;
         }
      } catch( IOException e ) {
         System.err.println( e );
      }
      return "Fehler";
   }
}

Ich habe mal für mein FileSend Programm eine Klasse geschrieben, welche die eigene IP feststellt, auch wenn man hinter einem Router sitzt.
Einfach IPbehindaRouter.getIP() aufrufen und in einem String speichern.

Ausserdem zu beachten, dass sobald jemand hinter einem Router sitzt der Empfänger die verwendeten Ports freigegeben haben muss. Dann funktioniert es einwandfrei.

mfg
alshir
 

Knudo

Mitglied
alshir hat gesagt.:
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

public class IPbehindaRouter {

   public static String getIP() {
      String line = "";
      BufferedReader in = null;
      int i = 0;
      try {
         URL getyouripurl = new URL( "http://www.whatismyip.com" );
         in = new BufferedReader( new InputStreamReader( getyouripurl
               .openStream() ) );
      } catch( MalformedURLException e ) {
         System.err.println( e );
      } catch( IOException e ) {
         System.err.println( e );
      }
      try {
         while( ( line = in.readLine() ) != null ) {
            if( line.startsWith( "<h1>Your IP is " ) ) {
               return line.substring( 15, ( line.length() - 10 ) );
            }
            i++ ;
         }
      } catch( IOException e ) {
         System.err.println( e );
      }
      return "Fehler";
   }
}

Ich habe mal für mein FileSend Programm eine Klasse geschrieben, welche die eigene IP feststellt, auch wenn man hinter einem Router sitzt.
Einfach IPbehindaRouter.getIP() aufrufen und in einem String speichern.

Ausserdem zu beachten, dass sobald jemand hinter einem Router sitzt der Empfänger die verwendeten Ports freigegeben haben muss. Dann funktioniert es einwandfrei.

mfg
alshir

superdingen und vor allem haargenau das, was ich hier gerade verzweifelt versucht habe hinzubekommen...THX

mfg Knudo
 

PAX

Mitglied
Code:
...
<td colspan="2">
            <h2>Your IP Address Is 85.180.48.5</h2><!--[b]Please set your code to scrape 
your IP from www.whatismyip.com/automation/n09230945.asp 
Please set your code to hit this page at a REASONABLE pace.  
For more info, please see our "Recommended Automation Practices" thread in the Forum.[/b]-->
			<h3></h3>
...

Wenn man nur die IP haben möchte: http://www.whatismyip.com/automation/n09230945.asp

Siehe auch hier: Recommended Automation Practices
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Custom E Mail Adresse mithilfe Serversocket oder ähnliches Netzwerkprogrammierung 21
P IP-Adresse von Drahtlos-LAN-Adapter WLAN Netzwerkprogrammierung 1
M Fritzbox Mac Adresse Hinzufügen Netzwerkprogrammierung 2
Java_RY Die IP-Adresse des Eigenen Hostes ausgeben Netzwerkprogrammierung 4
O HTTP IP Adresse verschleiern Netzwerkprogrammierung 19
O HTTP IP Adresse verschleiern Netzwerkprogrammierung 5
O Ip Adresse verschleiern Netzwerkprogrammierung 3
M Socket IP-Adresse Netzwerkprogrammierung 8
N Multicast Adresse herausfinden des PCs Netzwerkprogrammierung 11
G ServerSocket.accept() überschreibt IP-Adresse Netzwerkprogrammierung 4
H Eine Mac-Adresse übers Internet ermitteln Netzwerkprogrammierung 2
P IP-Adresse per Hand einstellen Netzwerkprogrammierung 11
Kr0e Netty3 + Localhost Adresse, Durchsatzdrosselung ? Netzwerkprogrammierung 6
C Mac-Adresse des Systems Netzwerkprogrammierung 2
B Globale IP-Adresse auslesen - Java Applet Netzwerkprogrammierung 2
S Port auf einer bestimmten IP-Adresse auslesen? Netzwerkprogrammierung 6
B Lokale IP Adresse bestimmen Netzwerkprogrammierung 12
G IP Adresse vergeben Netzwerkprogrammierung 18
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
M Bestimmung der Netzwerkklasse mittels IP-Adresse Netzwerkprogrammierung 3
T IP Adresse mit Hilfe der MAC Adresse ermitteln Netzwerkprogrammierung 3
W Bestimmt IP Adresse verwenden wenn man mehrere hat Netzwerkprogrammierung 5
C MAC Adresse Netzwerkprogrammierung 5
G Eigene IP-Adresse hinter Router ermitteln Netzwerkprogrammierung 1
zilti IP-Adresse Netzwerkprogrammierung 10
J Prüfen, ob IP-Adresse gültig ist Netzwerkprogrammierung 5
J Socket - Remote/Client Mac-Adresse? Netzwerkprogrammierung 3
C IP adresse anhand einer domain adresse auslesen / ermitteln Netzwerkprogrammierung 3
F IP-Adresse auslesen Netzwerkprogrammierung 7
M Eigene IP-Adresse Netzwerkprogrammierung 37
O IP adresse ermitteln Netzwerkprogrammierung 11
K IP Adresse erhöhen Netzwerkprogrammierung 4
S wie finde ich die ip adresse vom client heraus? Netzwerkprogrammierung 16
Z Physikalische Adresse der Netzwerkkarte Netzwerkprogrammierung 4
I IP Adresse des Clients einer Socket Verbindung Netzwerkprogrammierung 2
D DynDNS-Adresse ändert sich während Server pollt Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben