国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net 獲取客戶端IP與mac_.Net教程

2024-07-10 12:50:46
字體:
來源:轉載
供稿:網友

推薦:讓.Net 應用程序突破2G的內存訪問限制
32位Windows操作系統下單個進程的用戶模式內存訪問的限制是2G,如果在boot.ini中設置了/3G開關,則最大為3G,超過3G將無法訪問。由于Hubble.net 項目是一個數據庫系統,必須要考慮使用大內

獲取客戶端IP:

以下為引用的內容:

private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}

if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}

獲取MAC地址:

以下為引用的內容:

DllImport("Iphlpapi.dll")]
private static extern int SendARP(Int32 dest,Int32 host,ref Int64 mac,ref Int32 length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip);

private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置用戶代碼以初始化頁面
try
{
string userip=Request.UserHostAddress;
string strClientIP = Request.UserHostAddress.ToString().Trim();
Int32 ldest = inet_addr(strClientIP); //目的地的ip
Int32 lhost = inet_addr(""); //本地服務器的ip
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP(ldest,0, ref macinfo, ref len);
string mac_src=macinfo.ToString("X");
if(mac_src == "0")
{
if(userip=="127.0.0.1")
Response.Write ("正在訪問Localhost!");
else
Response.Write ("歡迎來自IP為" userip "的朋友!" "
");
return;
}

while(mac_src.Length<12)
{
mac_src = mac_src.Insert(0,"0");
}

string mac_dest="";

for(int i=0;i<11;i )
{
if (0 == (i % 2))
{
if ( i == 10 )
{
mac_dest = mac_dest.Insert(0,mac_src.Substring(i,2));
}
else
{
mac_dest ="-" mac_dest.Insert(0,mac_src.Substring(i,2));
}
}
}

//方法二
using System.Text.RegularExpressions;
using System.Diagnostics;
public class test
{
public test
{}
public static string GetCustomerMac(string IP) //para IP is the client's IP
{
string dirResults="";
ProcessStartInfo psi = new ProcessStartInfo();
Process proc = new Process();
psi.FileName = "nbtstat";
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.Arguments = "-A " IP;
psi.UseShellExecute = false;
proc = Process.Start(psi);
dirResults = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
dirResults=dirResults.Replace("/r","").Replace("/n","").Replace("/t","");

Regex reg=new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?((.)*?)) __MAC",RegexOptions.IgnoreCase|RegexOptions.Compiled);
Match mc=reg.Match(dirResults "__MAC");

if(mc.Success)
{
return mc.Groups["key"].Value;
}
else
{
reg=new Regex("Host not found",RegexOptions.IgnoreCase|RegexOptions.Compiled);
mc=reg.Match(dirResults);
if(mc.Success)
{
return "Host not found!";
}
else
{
return "";
}
}
}
}

這種方法有些地方得好好摸索,不然看不懂的

 

//

獲取服務器的IP地址方法以DNS法較為簡單實用,如下:
using System.Net;

private void ButtonIP_Click(object sender, System.EventArgs e)
{
System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
if ( addressList.Length>1)
{ TextLIP.Text = addressList[0].ToString();
TextSIP.Text = addressList[1].ToString();
}
else
{
TextLIP.Text = addressList[0].ToString();
TextSIP.Text = "沒有可用的連接";
}
}

獲取服務器的IP地址與MAC地址另一方法如下:

分享:解讀.NET 2.0中Hashtable快速查找的方法
一般來說我們都是用 Hashtable 的 ContainsKey 方法來查找 Hashtable 中是否存在某個鍵值然后讀取他,但是這個方法并不是效率最好的方法。比較好的方法是直接讀取鍵值然后判斷這個對象是否

共2頁上一頁12下一頁
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 太仆寺旗| 东兰县| 广河县| 福鼎市| 五寨县| 横山县| 象山县| 安阳县| 大埔区| 同江市| 常德市| 二连浩特市| 九台市| 德惠市| 宜兰市| 启东市| 仪征市| 达孜县| 阿图什市| 肇州县| 乌拉特前旗| 土默特右旗| 辛集市| 墨脱县| 新巴尔虎右旗| 临江市| 密山市| 祁门县| 大新县| 射洪县| 孝感市| 泾阳县| 监利县| 成武县| 上思县| 贡山| 武隆县| 专栏| 溧阳市| 天等县| 高台县|