# IP Adresse



## bernd (7. Jul 2004)

```
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????????


----------



## meez (7. Jul 2004)

Die Ziel IP....Alles dazwischen ist Sache der anderen...


----------



## bernd (8. Jul 2004)

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 (8. Jul 2004)

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?


----------



## meez (8. Jul 2004)

bernd hat gesagt.:
			
		

> Vielleicht braucht man doch die Internet IP!
> MfG. Bernd



Das mein ich eigentlich....Du brauchst die IP, vom Rechner auf der der Client läuft...


----------



## bernd (8. Jul 2004)

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 (8. Jul 2004)

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.


----------



## bernd (8. Jul 2004)

Meine Herren, da hab ich mir ja was angetan!
Danke erst mal!!!
 :autsch:


----------



## meez (8. Jul 2004)

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 (8. Jul 2004)

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


----------



## alshir (8. Jul 2004)

```
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


----------



## bernd (8. Jul 2004)

Cool !!!!!! Danke.  :lol:


----------



## Knudo (27. Jul 2004)

alshir hat gesagt.:
			
		

> ```
> import java.io.BufferedReader;
> import java.io.IOException;
> import java.io.InputStreamReader;
> ...



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

mfg Knudo


----------



## PAX (4. Apr 2009)

```
...
<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


----------

