传承网络文化,缔造精致生活!
联系我们
IT咨询 1356-0066-932 / 147-4811-2363
service@gengge.tech
给我们留言
主页
数据信息
外包服务
数据挖掘
知识库
外包服务
建站/软件服务
项目案例
技术支持
解决方案
企业品牌服务
网络推广
关于我们
联系我们
商务合作
首页
>
知识库
>
ASP.NET获取客户端IP及MAC地址
ASP.NET获取客户端IP及MAC地址
7/31/2011 8:49:36 PM
获取客户端IP
:
Code
1
public
string
GetUserIP
()
2
{
3
string
_userIP
;
4
if
(
Request.ServerVariables
[
"
HTTP_VIA
"
]
==
null
)
5
{
6
userIP
=
Request.UserHostAddress
;
7
}
8
else
9
{
10
userIP
=
Request.ServerVariables
[
"
HTTP_X_FORWARDED_FOR
"
];
11
}
12
return
userIP
;
13
}
14
获取客户端MAC地址
:
Code
1
[
DllImport
(
"
Iphlpapi.dll
"
)]
2
private static extern
int
SendARP
(
Int32
dest
,
Int32
host,ref
Int64
mac,ref
Int32
length);
3
[
DllImport
(
"
Ws2_32.dll
"
)]
4
private static extern
Int32
inet_addr
(string
ip
);
5
6
private
void
Page_Load(object sender,
System.EventArgs
e)
7
{
8
//
在此处放置用户代码以初始化页面
9
try
10
{
11
string
userip
=
Request.UserHostAddress
;
12
string
strClientIP
=
Request.UserHostAddress.ToString
().Trim();
13
Int32
ldest
=
inet_addr
(
strClientIP
);
//
目的地的
ip
14
Int32
lhost
=
inet_addr
(
""
);
//
本地服务器的
ip
15
Int64
macinfo
=
new
Int64
();
16
Int32
len
=
6
;
17
int
res
=
SendARP
(
ldest
,
0
, ref
macinfo
, ref
len
);
18
string
mac_src
=
macinfo.ToString
(
"
X
"
);
19
if
(
mac_src
==
"
0
"
)
20
{
21
if
(
userip
==
"
127.0.0.1
"
)
22
Response.Write
(
"
正在访问Localhost
!
"
);
23
else
24
Response.Write
(
"
欢迎来自IP为
"
+
userip
+
"
的朋友!
"
+
"
<
br
>
"
);
25
return
;
26
}
27
28
while
(
mac_src.Length
<
12
)
29
{
30
mac_src
=
mac_src.Insert
(
0
,
"
0
"
);
31
}
32
33
string mac_
dest
=
""
;
34
35
for
(
int
i
=
0
;i
<
11
;i
++
)
36
{
37
if
(
0
==
(i
%
2
))
38
{
39
if
( i
==
10
)
40
{
41
mac_
dest
=
mac_dest.Insert
(
0
,
mac_src.Substring
(i,
2
));
42
}
43
else
44
{
45
mac_
dest
=
"
-
"
+
mac_dest.Insert
(
0
,
mac_src.Substring
(i,
2
));
46
}
47
}
48
}
49
50
Response.Write
(
"
欢迎来自IP为
"
+
userip
+
"
<
br
>
"
+
"
,
MAC地址为
"
+
mac_
dest
+
"
的朋友!
"
51
52
+
"
<
br
>
"
);
53
}
54
catch
(Exception err)
55
{
56
Response.Write
(
err.Message
);
57
}
58
}
59
获取服务器IP一:
Code
1
private
void
ButtonIP_Click
(object sender,
System.EventArgs
e)
2
{
3
Syste
m.Net.IPAddress
[]
addressList
=
Dns.GetHostByName
(
Dns.GetHostName
()).AddressList;
4
if
(
addressList.Length
>
1
)
5
{
6
TextLIP.Text
=
addressList
[
0
].ToString();
7
TextSIP.Text
=
addressList
[
1
].ToString();
8
}
9
else
10
{
11
TextLIP.Text
=
addressList
[
0
].ToString();
TextSIP.Text
=
"
没有可用的连接
"
;
12
}
13
}
14
15
获取服务器IP及MAC地址二:
Code
using
System.Management
;
string
stringMAC
=
""
;
string
stringIP
=
""
;
ManagementClass
MC
=
new
ManagementClass
"
Win32_NetworkAdapterConfiguration
"
);
ManagementObjectCollection
MOC
=
MC.GetInstances
();
foreach
(
ManagementObject
MO
in
MOC
)
{
if
((
bool
)MO[
"
IPEnabled
"
]
==
true
){
stringMAC
+=
MO[
"
MACAddress
"
].ToString();
TextMAC.Text
=
stringMAC.ToString
();
string[]
IPAddresses
=
(string[]) MO[
"
IPAddress
"
];
if
(
IPAddresses.Length
>
0
)
stringIP
=
IPAddresses
[
0
];
TextIP.Text
=
stringIP.ToString
();
}
}
上一遍:
如何设计好一个UI
下一遍:
IE 无法启动解决方法