導航:首頁 > IDC知識 > java伺服器客戶端ip地址

java伺服器客戶端ip地址

發布時間:2020-11-27 20:45:15

1、在一個java介面中獲取請求客戶端的IP地址

你不是web項目那麼request是什麼了?
你可以定義一個介面,介面中有setRequest方法,和getRemoteAddr方法
然後在內你的主Servlet中將Request設置進去容,
再通過getRemoteAddr方法取得IP
實現類中定義一個Request屬性,通過setRequest方法設置,
getRemoteAddr方法調用request.getRemoteAddr方法。

還是沒有搞明白你到底要干什麼為什麼沒有request~web項目到處都是request啊~

2、java伺服器端需要IP嗎

Socket伺服器建立時一般要來綁定地址源,這個地址就是你看到的127.0.0.1或者0
如果Socket伺服器明確綁定一個地址時,那麼客戶端就只能用這個IP連接,假如一個伺服器有多個IP地址的話,就會有麻煩,因此,Socket伺服器通常都不綁定具體的IP地址。所以大部分表現是0.0.0.0

127.0.0.1是localhost,就是訪問本機的IP地址,因為他是固定的,所以大部分教程里都會使用這個IP。

3、請問怎樣讓客戶端知道伺服器端的IP地址。java TCP Socket編程。

你這個問題就好像問別人,怎麼才能知道對方的電話號碼一樣。只有一個方內法,讓對方告訴你容。
連接伺服器也一樣,讓伺服器告訴你他的ip地址。
伺服器的ip地址它的管理員一定知道。如果伺服器端是你自己開發的,那你就更應該清楚才對。

4、java編程,獲取區域網內伺服器端的ip地址

socket.connect(new InetSocketAddress(ip, port), timeout)

看有沒有拋異常 沒異常就是已經連接上了

想獲取伺服器名稱  可以用ARP協議 或者測試連接的時候伺服器回應一個名稱

package baidu;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;

public class Client {

    public static void main(String[] args) {
        /**
         * 埠號
         */
        int port = 10000;
        /**
         * 連接延時
         */
        int timeout = 300;
        System.out.println("Scanner Start...");
        Socket socket;
        /**
         * 掃描
         */
        for (int i = 1, k = 254; i < k; i++) {
            if ((socket = isOnLine("192.168.1." + i, port, timeout)) != null) {
                System.out.println("Server:"
                        + socket.getInetAddress().getHostAddress()
                        + ":" + socket.getPort() + " Is Waiting...");
            }

            /**
             * 關閉連接
             */
            if (socket != null && !socket.isClosed()) {
                try {
                    socket.close();
                } catch (IOException e) {
                    socket = null;
                }
            }
        }
        System.out.println("Scanner end...");
    }

    /**
     * 測試連接伺服器,返回連接成功後的Socket
     * 
     * @param ip
     *            伺服器Ip
     * @param port
     *            伺服器埠號
     * @param timeout
     *            連接延時
     * @return 返回連接成功後的Socket
     */
    private static Socket isOnLine(String ip, int port, int timeout) {
        Socket socket = new Socket();
        try {
            socket.connect(new InetSocketAddress(ip, port), timeout);
        } catch (IOException e) {
            return null;
        }
        return socket;
    }

}

5、在java後台伺服器,如何根據HttpSession獲得客戶端ip?

只能根據用戶請求帶過來的sessionID所匹配的ip地址 而且只可以通過request獲得ip 反正你能得到session 那得到request是一樣版簡單的不是嗎
得到request後命權令為:

String ip = request.getRemoteAddr();
這個ip字元串就是了

6、java服務端如何獲得客戶端的ip

網路通信可分為兩種模式:TCP有連接的通信
UDP無連接的通信
依照上述的問題我可以理解為你是要進行有連接的通信。是要經過三次握手才能實現可靠的連接
第一次:建立連接時三次握手,客戶端發送syn包(syn=j)到伺服器,並進入SYN_SENT狀態,等待伺服器確認;SYN(Synchronize Sequence Numbers)同步序列號。

伺服器端即可使用:
Socket s=serverSocket.accept();
String clientIP=s.getInetAddress().toString();

這就實現了java伺服器端獲取到連接此伺服器的客戶端的IP了,你若想實現獲取所有連接此伺服器的客戶端的IP,你可以把每次accept()返回的socket放進全局的Vector裡面,然後在遍歷這個vector方法就同上代碼咯……

7、Java 客戶端通過伺服器1訪問伺服器2 ,伺服器2怎麼獲取客戶端ip

你可以加參數或頭信息啊!比如你客戶端1的iP是10.10.10.88;你訪問伺服器1,伺服器1知道你客戶端的IP,伺服器1訪問伺服器2的時候把這個客戶端的IP當參數傳給伺服器2不得了

8、java 獲取客戶端ip地址

如果能過http 請求,那獲得真實的ip的方法是使用request.getRemoteAddr(),
若客戶端使用了代理 ,請參考:專http://sonicmq.javaeye.com/blog/416565

如果是C/S的程序
客戶端調用屬InetAddress.getLocalHost()得到的是客戶端的內網ip

9、在Linux系統下用Java語言獲取客戶端的IP地址,MAC地址,客戶端的主機名稱?

這個網上很copy多,主要是機器必須支持ICMP和NETBIOS協議。你參考一下:
public String getIP()
{
InetAddress inet;
try {
inet =
InetAddress.getLocalHost();
InetAddress.getByName("");
return
inet.getHostAddress();
} catch (UnknownHostException e) {
// TODO
Auto-generated catch block
e.printStackTrace();
}
return "";
}

10、用java寫的corba伺服器中,如何知道調用服務的客戶端的ip地址啊

在CORBA應用層,如果server需要知道client的ip地址,一般採用的方式是某個介面調用的時候版,client將相應的信息傳遞給server。
如果不權是採用這種方式,那麼在CORBA應用層上,server是無法獲得client的ip地址。
當然,CORBA的底層通訊使用的是TCP/IP協議,從理論上講,從IP報文中可以獲得client的ip地址。但是,這需要你深入到CORBA層以下取研究了。

與java伺服器客戶端ip地址相關的知識