IP Adresse bestimmen



  • Hi,

    habe nen Tomcat Server der auf nem pc läuft, der an nem router dranhängt.

    wie krieg ich jetzt den port des servers und die IP des routers raus?

    Jetzt hab ichs so:

    String serverAdress = "http://" + servletRequest.getServerName() + ":8080" + servletRequest.getContextPath() + "/";
    

    da is allerdings der port statisch, und das darf ned sein.
    Hat jemand eine Idee?

    Grüße, Jojo



  • Wenn ich das richtig verstanden habe, möchtest du den Port dynamisch rausfinden:
    Ist das Sinnvoll? Ports haben ihre eigenen Standards - 21 FTP, 80 HTTP, etc.
    Aber wenn, dann müsstest du jeden Port in der infragekommenden Reichweite testen, und sehen, wo du eine korrekte Antwort auf eine Anfrage bekommst ...
    Wenn du den Port nur dynamisch eingeben willst:

    private String port;
    public Constructor(final String port){
       this.port = port;
    }
    public String getAddress(){
       return "http://"
             +servletRequest.getServerName()
             +":"+port
             +servletRequest.getContextPath()
             +"/";
    }
    


  • ich kann den port gar ned eingeben. das tool wird von irgendeinem anwender auf irgendeinem server installiert. der anwender hat im worstcase keine ahnung, auf was für nem port der server läuft. nun generiert das tool aber einen link, der eben auf den server verweisen soll. die ip und so krieg ich ja programmatisch raus, bloß die port nummer irgendwie nicht.



  • Bin mir nicht sicher ob's das richtige ist, aber schon mal die Klasse java.net.InetSocketAddress ausprobiert? Die hat doch eine URL als Konstruktor, jedenfalls wenn ich mich richtig erinnere...



  • String adress = "http://" + request.getLocalAddr() + ":" + request.getLocalPort() + request.getContextPath() + "/";
    

    ergibt dann die server adresse; also mit request.getLocalPort() den port...
    im übrigen gibt request.getLocalName() dir im zweifel auch den hostnamen, falls es nicht die ip sein soll...

    ... nur mal so, aber setzt ein "request" nicht voraus, dass die seite bereits aufgerufen wurde und man also die url schon kennt? 😕



  • genau so solls sein. wieso hab ich localPort ned selber gefunden? werd nachhert gleich mal schaun obs geht.

    klar wurde die seite aufgerufen, aber das heisst nicht, dass der anwender weiss, auf welchem port. und auch wenn er es wüsste, wäre es sehr unkomfortabel, wenn er sie selber eingeben müsste.


Anmelden zum Antworten