Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,036

HOME > .NET Framework > Forum > ASP.NET C# ถามเกี่ยวกับการ Check IP Address ของ เครื่องที่เข้าใช้งาน



 

ASP.NET C# ถามเกี่ยวกับการ Check IP Address ของ เครื่องที่เข้าใช้งาน

 



Topic : 095130



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์




คือ เครื่องผม IP 10.0.1.5

เครื่อง SERVER IP 192.0.1.40


ผมได้เขียน Code นี้ ในการหา

lblIPaddress.Text = Request.ServerVariables["remote_addr"].ToString();


เครื่องที่ขึ้นด้วย IP 192 เครื่อง SERVER บอกถูกต้องหมด

แต่ เครื่องที่ขึ้นด้วย IP 10 เครื่อง SEVER บอกเป็น 192.0.1.99 หมดเลย


ผู้รู้ช่วยแนะนำหน่อยครับ ว่าต้องเขียน Code ลักษณะอย่างไร

ขอบคุณครับ



Tag : .NET, Ms SQL Server 2008, Web (ASP.NET), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-05-14 08:55:13 By : ghosting789 View : 4370 Reply : 25
 

 

No. 1



โพสกระทู้ ( 184 )
บทความ ( 0 )



สถานะออฟไลน์


ผมใช้ตัวนี้อ่ะครับ

Code (VB.NET)
Dim strClientIP As String = ""
strClientIP = Request.UserHostAddress()


น่าจะประยุกต์ใช้ได้ไหมครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-14 11:03:14 By : golfkub
 


 

No. 2



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ลองแล้วครับ

ออก เป็น 192.0.1.99 ครับ

คือ SEVER กับ เครื่อง Client คนละ วง Router อะครับ

เวลามันติดต่อกัน มันจะผ่าน 192.0.1.99 นี้ อะครับ มันเลยแสดงเป็น 192.0.1.99 หมดเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-14 11:08:04 By : ghosting789
 

 

No. 3

Guest


192.0.1.99 คงเป็น ip ของ proxy นะสิ

โดยมันคงทำหน้าที่ไปเรียก server

ทำให้เมื่อใช้ request server แล้วเห็น 192.0.1.99 เป็นตัวเรียกอยู่อันเดียว

ลองดูลิงค์นี้เผื่อจะช่วยได้ http://csharpdotnetfreak.blogspot.com/2008/12/finding-ip-address-behind-proxy-using-c.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-14 11:28:37 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 4



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


Code (C#)
public string IpAddress()
{
string strIpAddress;
strIpAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (strIpAddress == null)
{
strIpAddress = Request.ServerVariables["REMOTE_ADDR"];
}
return strIpAddress;
}


ใช่ตามนี้ ก็

192.0.1.99 อะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-14 12:27:52 By : ghosting789
 


 

No. 5

Guest


ปัญหาเดียวกันครับ แต่ปัญหาของผมมันยิ่งใหญ่ จนผมไม่ละความพยายาม (ณ.เวลานี้ผมก็ยังทำไม่ได้)

การหา IPAddress นี่เป็น SubSet (ส่วนหนึ่งของปัญหาของผมไปเลยครับ)


Real time .

อุปกรณ์ A ---> RS232/485/USB/etc ---> ComA ----> LocalNetWork ----> Internet ----> อุปกรณ์ A
อุปกรณ์ B ---> RS232/485/USB/etc ----> ComA ----> LocalNetWork ----> Internet ----> อุปกรณ์ B
อุปกรณ์ C ---> RS232/485/USB/etc ----> ComZ ----> LocalNetWork ----> Internet ----> อุปกรณ์ A
...
...
...
Real time .

[x] อุปกรณ์หมายความว่า เป็นอะไรก็ได้ที่ไม่มีชีวิต และหายใจเองไม่ได้ แต่เรา Programming มันได้
เช่น HUB, Router, Modem, Printer, PCL, MCU, PIC, EEPROME, etc
ผมก็อธิบายไม่ถูก เอาแบบเข้าใจได้ง่ายฯ ก็ SCADA นั่นแหละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-14 19:37:07 By : ผ่านมา
 


 

No. 6

Guest


ASP.NET C# ถามเกี่ยวกับการ Check IP Address ของ เครื่องที่เข้าใช้งาน
----- คือ เครื่องผม IP 10.0.1.5
----- เครื่อง SERVER IP 192.0.1.40
----- ถ้าให้ผมเดา น่าจะเป็น Local NetWork หรือ Intranet

ผมขออนุญาติขอถามกลับว่า "สมมุติว่า ได้ IP Address มาแล้ว และถูกต้องเสมอ"
----- ประโยชน์ที่ได้คืออะไร?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 01:08:48 By : ผ่านมา
 


 

No. 7

Guest


ประโยชน์ที่ได้คืออะไร? หมายความว่า
----- What Most Schools Don't Teach
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 01:10:27 By : ผ่านมา
 


 

No. 8

Guest


ip class c 192.0.x.x มันแปลกๆ นะ

ของจริงเปล่าเนี่ย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 07:52:18 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 9



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ของจริงครับ 192.0.1.40

แล้วที่ถามว่าเอา IP ไปทำไรนั้น คือ ระบบไม่มีการล็อกอิน
จะทำยังไงให้รู้ว่าใครใช้งาน ระบบนี้ จึงต้องเก็บเป็น IP ของเครื่องนั้น ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 08:52:58 By : ghosting789
 


 

No. 10

Guest


แล้วตกลงมันเป็๋น proxy

หรือว่าทำ nat

หรือแค่แบ่ง subnet ปกติครับ

แล้ว ip วง 10.0.x.x เป็น fix หรือ obtain จาก dhcp ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 09:04:01 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 11



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


วง 10 เป็น FIX ครับ

แล้ว เป็น SUBNET ปกติครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 09:12:49 By : ghosting789
 


 

No. 12

Guest


แสดงว่า 192.0.1.99 เป็น gateway ใช่ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 09:15:27 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 13



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


192.0.1.99 เป็น gateway ใช่แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 09:31:54 By : ghosting789
 


 

No. 14

Guest


งั้นลองใช้ class นี้ดูนะ

IPNetworking.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.Net;

/// <summary>
/// Summary description for IPNetworking
/// </summary>
public class IPNetworking
{
    public static string GetIP4Address()
    {
        string IP4Address = String.Empty;

        foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
        {
            if (IPA.AddressFamily.ToString() == "InterNetwork")
            {
                IP4Address = IPA.ToString();
                break;
            }
        }

        if (IP4Address != String.Empty)
        {
            return IP4Address;
        }

        foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
        {
            if (IPA.AddressFamily.ToString() == "InterNetwork")
            {
                IP4Address = IPA.ToString();
                break;
            }
        }

        return IP4Address;
    }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 10:21:10 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 15



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


string IP4Address = String.Empty;

foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
{
if (IPA.AddressFamily.ToString() == "InterNetwork")
{
IP4Address = IPA.ToString();
break;
}
}

if (IP4Address != String.Empty)
{
return IP4Address;
}

foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
{
if (IPA.AddressFamily.ToString() == "InterNetwork")
{
IP4Address = IPA.ToString();
break;
}
}

lblIPaddress.Text = IP4Address;



ออกมาเหมือนเดิมครับ 192.0.1.99
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 10:50:39 By : ghosting789
 


 

No. 16

Guest


เอ่อ

if (IP4Address != String.Empty)
{
return IP4Address;
}

มันข้ามนี่ไปเปล่า ทำไมไม่ใช้เป็น class

หรือเขียนใส่ใน method ก็ยังดี
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 11:04:12 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 17



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ขอโทษที่ครับ

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lblIPaddress.Text = IpAddress();
}
}

public string IpAddress()
{
string IP4Address = String.Empty;

foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
{
if (IPA.AddressFamily.ToString() == "InterNetwork")
{
IP4Address = IPA.ToString();
break;
}
}

if (IP4Address != String.Empty)
{
return IP4Address;
}

foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
{
if (IPA.AddressFamily.ToString() == "InterNetwork")
{
IP4Address = IPA.ToString();
break;
}
}

return IP4Address;

}


แบบนี้เหมือนเดิมครับ


ประวัติการแก้ไข
2013-05-15 11:18:59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 11:18:38 By : ghosting789
 


 

No. 18

Guest


งั้นคงติดที่ router แล้วแหละ

จาก server คงติดต่อ client ได้ แต่ไม่สามารถเห็น destination ได้

สงสัยงานนนี้ต้องปรึกษา se แล้วครับ

ให้แก้ secure ตรงนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 11:42:19 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 19



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ ผมจะลองติดต่อ SE ดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 15:16:22 By : ghosting789
 


 

No. 20

Guest


Save SourceCode ด้านล่างนี้ตั้งชื่อไฟล์ xxx.hta แล้วลองรันดูครับ
ขอให้โชคดีครับ



Code (JavaScript)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
     <title>Application Executer</title>
     <HTA:APPLICATION ID="oMyApp" 
      APPLICATIONNAME="Application Executer" 
      BORDER="no"
      CAPTION="no"
      SHOWINTASKBAR="yes"
      SINGLEINSTANCE="yes"
      SYSMENU="yes"
      SCROLL="no"
      WINDOWSTATE="normal">
     <script type="text/javascript" language="javascript">
         function RunExcuteFile() {
   WshShell = new ActiveXObject("WScript.Shell");
   WshShell.Run("c:/windows/system32/notepad.exe abc.txt", 1, false);
         }
     </script>
 </head>
 <body>
  <input type="button" value="Run Notepad" onclick="RunExcuteFile();"/>
 </body>
 </html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 17:26:25 By : ผ่านมา
 


 

No. 21

Guest


Save SourceCode ด้านล่างนี้ตั้งชื่อไฟล์ xxx.hta แล้วลองรันดูครับ

Code (JavaScript)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
     <title>Application Executer</title>
     <HTA:APPLICATION ID="oMyApp" 
      APPLICATIONNAME="Application Executer" 
      BORDER="no"
      CAPTION="no"
      SHOWINTASKBAR="yes"
      SINGLEINSTANCE="yes"
      SYSMENU="yes"
      SCROLL="no"
      WINDOWSTATE="normal">
     <script type="text/javascript" language="javascript">
         function RunExcuteFile() {
         WshShell = new ActiveXObject("WScript.Shell");
         WshShell.Run("c:/windows/system32/notepad.exe abc.txt", 1, false);
         }
     </script>
     <script type="text/vbscript">
     	Function GetIPInformation()
		strComputer = "."
		Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
		Set colNetAdapters = objWMIService.ExecQuery _
			("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=True")
		strDetails = ""
		For Each objAdapter In colNetAdapters
			If IsNull(objAdapter.IPAddress) = False And IsNull(objAdapter.DefaultIPGateway) = False Then
				If Join(objAdapter.IPAddress) <> "0.0.0.0" Then
					If strDetails = "" Then
						strDetails = Join(objAdapter.IPAddress) & ";"
						strDetails = strDetails & Join(objAdapter.IPSubnet) & ";"
						strDetails = strDetails & Join(objAdapter.DefaultIPGateway) & ";"
						strDetails = strDetails & Join(objAdapter.DNSServerSearchOrder, ";")
					End If
				End If
			End If
		Next
		MsgBox strDetails
		GetIPInformation = strDetails
	End Function

     </script>
 </head>
 <body>
  <input type="button" value="Around the world Get IP Address" onclick="GetIPInformation();"/>
 </body>
 </html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-15 17:56:15 By : ผ่านมา
 


 

No. 22

Guest


ขอบคุณครับ ผมจะลองติดต่อ SE ดู

ถ้าอ้างตามทฤษฏี (คุยกันยาว และไม่รู้จบ)
----- IP4 แบ่งออกเป็น 3 Class ดังนี้
-------- Clase A
-------- Clase B
-------- Clase C
------------ โดยปกติแล้ว (Default) มักจะเข้าใจกันโดยทั่วฯไป เราจะใช้รูปแบบนี้เสมอ 192.168.X.X
------------ ยกเว้นกำหนดเป็นอย่างอื่น และแน่นอนว่า มันมีปัญหาซ่อนเร้นอยู่ *****
------------ เป็นโชคร้ายของคนที่เจอปัญหานั้น (รอเวลาเมื่อไหร่ก็เท่านั้นเอง) **********


[x] ***** หมายความว่า จะมีใครสักกี่คนที่เข้าใจ แก่นแท้ของ OS อย่างลึกซึ้ง (Windows, Linux, OpenSourceOS, etc)
[x] ********** หมายความว่า ในทางปฏิบัติแล้ว ยกตัวอย่างเปรียบเทียบ เช่น การเข้าสายแลน (UTP)
---------------- มีทั้งหมด 4 คู่ (แปดเส้น) และโดยปกติจะต่อแบบนี้ (ไม่ไขว้สาย)
---------------- ขาวส้ม-ส้ม, ขาวเขียว-น้ำเงิน, ขาวน้ำเงิน-เขียว, ขาวน้ำตาล-น้ำตาล
---------------- ขาวส้ม-ส้ม, ขาวเขียว-น้ำเงิน, ขาวน้ำเงิน-เขียว, น้ำตาล-ขาวน้ำตาล
--------------------- เมื่อ 15 ปีที่ผ่านมา ผมเจอปัญหา ข้อมูลมาไม่ครบ อาจจะเป็น 1 อาทิตย์ หรือ 2 อาทิตย์ หรือ เดือนละครั้ง เอาแน่เอานอนไม่ได้


[x] เพราะฉะนั้น การกำหนด IP4 Address
---- 192.168.X.X <> 192.0.1.X
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-17 14:10:12 By : ผ่านมา
 


 

No. 23

Guest


มันมีอยู่ประโยคหนึ่งที่อยากจะบอกว่า
"เหนือฟ้ายังมีฟ้า"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-17 22:18:39 By : ผ่านมา
 


 

No. 24

Guest


อันนี้คือคำตอบที่ดีที่สุด ณ.เวลานี้ สำหรับหัวข้อกระทู้ที่ #095130

----- ศึกษา SignalR *****
----- ศึกษา Node.js
----- ศึกษา Knockout.js
----- ศึกษา WebSockets

[x] ***** หมายความว่าุ้ในระหว่างทางที่คุณศึกษานั้น คุณจะได้อะไรมากมาย ผ่านคำว่า Real time.
---------- และคุณจะรับรู้ว่า Dynamic Website มันกำลังจะกลายเป็นอดีตไปแล้ว (ยุคน้ำแข็ง)
---------- วิธีการ Install SignalR
---------- PM> Install-Package Microsoft.AspNet.SignalR

ขอให้โชคดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-18 07:12:29 By : ผ่านมา
 


 

No. 25

Guest


#NO24 ผมลืมบอกไปอีกอย่างหนึ่ง
---------- ศึกษา Owin (SignalR มันเรียกใช้งาน Owin)

ตัวอย่าง SignalR & Owin

Code (VB.NET)
Protected Function GetIpAddress() As String
	Dim env = [Get](Of IDictionary(Of String, Object))(Context.Request.Items, "owin.environment")
	If env Is Nothing Then
		Return Nothing
	End If
	Dim ipAddress = [Get](Of String)(env, "server.RemoteIpAddress")
	Return ipAddress
End Function

Private Shared Function [Get](Of T)(env As IDictionary(Of String, Object), key As String) As T
	Dim value As Object
	Return If(env.TryGetValue(key, value), DirectCast(value, T), Nothing)
End Function


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-18 07:23:04 By : ผ่านมา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ASP.NET C# ถามเกี่ยวกับการ Check IP Address ของ เครื่องที่เข้าใช้งาน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่