ผมกำลังทำโปรเจคจบเรื่อง Wireless MAC authentication ครับ
ให้user สามารถเข้าใช้เน็ตและเข้าถึงทรัพยากรของ server ที่ผมสร้างได้ก็ต่อเมื่อ MAC address ของ user อยู่ในรายการกรอง MAC address ของ server
ผมได้สร้างหน้าเว็บลงทะเบียนให้ user ใหม่ลงทะเบียน MAC address ของ user ไว้ แต่ไม่รู้ว่าจะทำยังไงให้เวลา user กดยืนยันแล้ว ตัวเว็บจะส่ง MAC address ของ user ติดมากับข้อมูลลงทะเบียนของ user ด้วยน่ะครับ
ไม่ทราบว่า asp.net มี library หรือ ฟังกฺ์ชั่น ที่สามารถทำแบบที่ผมเขียนมาได้ไหมครับ
Name Type Status
---------------------------------------------
MONZA-PC <20> UNIQUE Registered
MONZA-PC <00> UNIQUE Registered
MSHOME <00> GROUP Registered
MSHOME <1E> GROUP Registered
คือ ถ้า server เป็น windows ก็สามารถใช้ คำสั่ง nbtstat เพื่อร้องขอข้อมูลเครื่องใน network ได้ครับเราแค่เอามาใช้ผ่านทาง webform แทนที่จะพิมพ์ใน dos แทนครับ
ตัวอย่าง webform
Code (C#)
default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Ip address :
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<br />
<asp:Literal ID="Literal1" runat="server"></asp:Literal></div>
</form>
</body>
</html>
-----------------
defalut.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
using System.Net;
using System.Net.NetworkInformation;
using System.Runtime.InteropServices;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string macAddress = string.Empty;
ProcessStartInfo processStartInfo = new ProcessStartInfo();
Process process = new Process();
processStartInfo.FileName = "nbtstat";
processStartInfo.RedirectStandardInput = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.Arguments = "-a " + TextBox1.Text;
processStartInfo.UseShellExecute = false;
process = Process.Start(processStartInfo);
int Counter = -1;
while (Counter <= -1)
{
Counter = macAddress.Trim().ToLower().IndexOf("mac address", 0);
if (Counter > -1)
{
break;
}
macAddress = process.StandardOutput.ReadLine();
}
process.WaitForExit();
macAddress = macAddress.Trim();
Literal1.Text = macAddress.ToString();
}
}
มาตอบคุณ tungman ครับ
คำสั่งนี้ รันที่เครื่อง server ครับ เหมือนคำสั่ง ping อะคับเช่นเครื่องเราเครื่อง A ping ไปเครื่อง B
เครื่อง B ไม่ได้ run โปรแกรมอะไรแต่เราก็ได้ message ตอบกลับจากเครื่อง B หลักการเดียวกัน
ครับ ปรกติอุปกรณ์ networkเขามี protocolที่ทำการแลกเปลี่ยนข้อมูลในระบบ network กันอยู่แล้ว
webform สามารถสร้าง โปรแกรมที่สามารถดู resource ของเครื่อข่าย server ได้ครับ เช่นเรา
สร้างโปรแกรม มาแล้ว up ขึ้น host ที่ไหนซักที่ เราสามารถดูได้ ชื่อserver,dns,ip,maxadress
sub netmark, แต่ถึงขั้น ให้ server format drive นี่ผมไม่แน่ใจครับ อย่างที่คุณ tungman บอก
ถ้าทำได้นี่เป็นเรื่องแน่ครับ ผมก็เพิ่งเริ่มศึกษา network programming ได้ไม่นาน ยังงูๆปลาๆ
อยู่ครับ