公司内部是使用的内网IP像192.168.1.1 出外网就是一个静态的IP 如68.156.54.56
如何用C#获取到公司内部的机器名或者是他内网的IP 是(192.168.1.1)这种的IP 不是出去的静态的IP,
因为出去的IP地址都一样.不能分别是谁操作的!希望大哥大姐们帮帮忙啊.网上找的都获取 出外网的IP!
如何用C#获取到公司内部的机器名或者是他内网的IP 是(192.168.1.1)这种的IP 不是出去的静态的IP,
因为出去的IP地址都一样.不能分别是谁操作的!希望大哥大姐们帮帮忙啊.网上找的都获取 出外网的IP!
public string getip()
{
System.Net.IPAddress addr;
// 获得本机局域网IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
return addr.ToString()+System.Net.Dns.GetHostName();
}
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
namespace ipip
{
/// <summary>
/// Class1 的摘要说明。
/// 获取本机上网IP和内网IP
/// </summary>
public class Class1
{ private string strgetIP;
public Class1()
{
//
netIP();
getIP();
}
public string renetIP()
{return netIP();}//返回网络IP public string regetIP()
{return strgetIP;}//返回内网IP
static string netIP()
{
Uri uri = new Uri("http://www.ikaka.com/ip/index.asp");//查本机网络IP的网页
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = 0;
req.CookieContainer = new CookieContainer();
req.GetRequestStream().Write(new byte [0], 0, 0);
HttpWebResponse res = (HttpWebResponse)(req.GetResponse());
StreamReader rs = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("GB18030"));
string s = rs.ReadToEnd();
rs.Close();
req.Abort();
res.Close();
Match m = Regex.Match(s, @"IP:\[(?<IP>[0-9\.]*)\]");
if (m.Success) return m.Groups["IP"].Value;
string strnetIP= string.Empty;
return strnetIP;
} public string getIP()//注意与static 的区别
{
System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;//获取本机内网IP
strgetIP = addressList[0].ToString();
return strgetIP;
} }}
不知道LZ拿来是做什么用的,如果是根据这个判断是哪台机器
那么可以拿MAC地址试试<SCRIPT language="jscript" event="OnObjectReady(objObject,objAsyncContext)" for="foo">
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
{
if(objObject.ServiceName != "VMnetAdapter")//判断是否是虚拟网卡
{
var array = MACAddr.split(';');
var bIsContains = false;
for(var i=0;i<array.length;i++)
{
if(array[i] == objObject.MACAddress)
{
bIsContains = true;
}
}
if(!bIsContains)
{
MACAddr += objObject.MACAddress + ";";
}
}
}
}
</SCRIPT><body>
<OBJECT id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" VIEWASTEXT>
</OBJECT>
<OBJECT id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" VIEWASTEXT>
</OBJECT>
<SCRIPT language="jscript">
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var MACAddr = "";
var IPAddr;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel = 3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<form>
...
</form>
<SCRIPT language="jscript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo">
document.getElementById("<%=hfMACAddress.ClientID %>").value =MACAddr;//此处将MAC存入一个隐藏域,方便后台读取
</SCRIPT>
</body>拿到的MACAddr 就是客户端的MAC地址
<head>
<title>test</title>
<script language="jscript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo">
//alert(unescape(MACAddr));
alert(unescape(IPAddr));
alert(unescape(sDNSName));
//document.formbar.submit();
</script>
<script language="jscript" event="OnObjectReady(objObject,objAsyncContext)" for="foo">
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</script> </head>
<body>
<object id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT"></object>
<object id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223"></object>
<script language="jscript">
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
</body>
</html>这样处理后要把浏览器的安全级别中的activeX都启用后就可以看到客户端的IP了。