映射外網_nat123論壇客服

 找回密碼
 獲得新生
查看: 13741|回復: 10
打印 上一主題 下一主題

求TCP獲取真實IP的代碼例子

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2015-4-21 20:12:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家好,小弟在這里懇求推出 TCP獲取客戶端真實IP的C++或Java的代碼例子。

因為,獲得的都是127.0.0.1啊!!!!

然后在本地設置中,打鉤建立連接時以UTF8編碼向服務器發送訪問者IP端口。。

因為沒有例子代碼,所以不好編寫接口,請問有沒有例子代碼呢

關于TCP連接的獲取真實IP的。




推薦
發表于 2015-4-21 20:56:28 | 只看該作者
在server端第一次接收到數據時讀取訪客IP即可,可參考下這段代碼

    public class RemoteUser
    {

        public string remoteIp { get; set; }
        public string remoteIpPort = "";
        public string remotePort = "";
        public bool isFirstRecieve = true;

        public void OnRecieveData(object o, bool isSyn, byte[] buffers, int bufferRead)
        {
            bool isIp = false;
            if (isFirstRecieve)
            {
                isFirstRecieve = false;
                string datas = Encoding.UTF8.GetString(buffers);
                this.remoteIpPort = datas;
                if (datas.Contains(":"))
                {
                    string[] ipPort = datas.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    if (ipPort.Length >= 2)
                    {
                        string ip = ipPort[0];
                        string port = ipPort[1];
                        this.remoteIp = ip;
                        this.remotePort = port;
                        Console.Write("接收到訪客IP:" + ip);
                        isIp = true;
                    }
                }
            }
            if(!isIp)
            {
                string datas = Encoding.UTF8.GetString(buffers);
                Console.Write("tcp接收到字符串:" + datas);
            }
        }
    }
沙發
 樓主| 發表于 2015-4-21 20:24:16 | 只看該作者
頂頂看看有沒有同道中人!
板凳
 樓主| 發表于 2015-4-21 20:42:13 | 只看該作者
一二三四五六七 馬蘭開花二十一

點評

路過ヽ(  ̄д ̄;)ノ  發表于 2018-8-11 07:00
5#
 樓主| 發表于 2015-4-21 21:04:47 | 只看該作者
nat123jia 發表于 2015-4-21 20:56
在server端第一次接收到數據時讀取訪客IP即可,可參考下這段代碼

    public class RemoteUser

非常感激!!
6#
發表于 2015-4-21 21:24:50 | 只看該作者
地板有了
7#
發表于 2015-7-16 16:44:29 | 只看該作者
關于TCP連接的獲取真實IP的。
8#
發表于 2016-1-19 18:38:43 | 只看該作者
在server端第一次接收到數據時讀取訪客IP即可,可參考下這段代碼

    public class RemoteUser
    {

        public string remoteIp { get; set; }
        public string remoteIpPort = "";
        public string remotePort = "";
        public bool isFirstRecieve = true;

        public void OnRecieveData(object o, bool isSyn, byte[] buffers, int bufferRead)
        {
            bool isIp = false;
            if (isFirstRecieve)
            {
                isFirstRecieve = false;
                string datas = Encoding.UTF8.GetString(buffers);
                this.remoteIpPort = datas;
                if (datas.Contains(":"))
                {
                    string[] ipPort = datas.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    if (ipPort.Length >= 2)
                    {
                        string ip = ipPort[0];
                        string port = ipPort[1];
                        this.remoteIp = ip;
                        this.remotePort = port;
                        Console.Write("接收到訪客IP:" + ip);
                        isIp = true;
                    }
                }
            }
            if(!isIp)
            {
                string datas = Encoding.UTF8.GetString(buffers);
                Console.Write("tcp接收到字符串:" + datas);
            }
        }
    }            這代碼加在什么地方  
9#
發表于 2017-6-29 15:44:51 | 只看該作者
收到,謝謝!去試一試

點評

路過  發表于 2018-8-1 05:46
您需要登錄后才可以回帖 登錄 | 獲得新生

本版積分規則

nat123

GMT+8, 2019-6-30 18:27 , Processed in 0.185022 second(s), 17 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc. | 網站反饋郵箱:natbbs#163.com(把#換成@)

快速回復 返回頂部 返回列表
qq刮刮乐刮5时效小喇叭