WMI 控制 Microsoft DNS Server

域名系統(英文:Domain Name System,縮寫:DNS)是因特網的一項服務。它作為將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便的訪問互聯網。DNS 使用TCP和UDP端口53。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。

開始時,域名的字符僅限於ASCII字符的一個子集。2008年,ICANN通過一項決議,允許使用其它語言作為互聯網頂級域名的字符。使用基於Punycode碼的IDNA系統,可以將Unicode字符串映射為有效的DNS字符集。因此,諸如「x.臺灣」這樣的域名可以在地址欄直接輸入,而不需要安裝插件。但是,由於英語的廣泛使用,使用其他語言字符作為域名會產生多種問題,例如難以輸入,難以在國際推廣等。

 

利用WMI 控制 Microsoft DNS Server,以下為範例程式:


  2011-11-29      ez      .NET
UDP 傳送與接收

TCP(Transmission Control Protocol)

UDP(User Datagram Protocol)

TCP這個協定最主要的特色在於傳輸資料時,需要驗證資 料,確保正確性。所以花的時間稍多一點。

而UDP這個協定最主要的特色在於傳輸資料時,不需要驗 證資料,不保證正確性,所以比較省時間。

而一般來說, 像是多媒體串流(streaming)就是使用這種協定。

Server端

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UdpServer
{
    public static void Main()
    {
        IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 8888);
        Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        newsock.Bind(ipep);
        Console.WriteLine("Waiting for a client...");
        IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
        EndPoint Remote = (EndPoint)(sender);
        while(true)
        {
            byte[] data = new byte[1024];
            int recv = newsock.ReceiveFrom(data, ref Remote);
            Console.WriteLine(Encoding.UTF8.GetString(data, 0, recv));
        }
    }
}

  2012-06-04      ez      .NET
二進位檔案存取

.NET Framework提供了BinaryReader與BinaryWriter用來處理二進位資料

讀取

FileStream myFile = File.Open(@"C:\a.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryReader myReader = new BinaryReader(myFile);
int dl = Convert.ToInt32(myFile.Length);
byte[] myData = myReader.ReadBytes(dl);
myReader.Close();
myFile.Close();

  2011-11-29      ez      .NET
Parallel 平行運算 ConcurrentStack

在 .Net 3.5 之前所提供的 Collections 不是 thread-safe 的,必須使用.Net 4.0 ,System.Collections.Concurrent Namespace 下的泛型。

錯誤寫法

List<string> testData = new List<string>();
List<string> resultData = new List<string>();
Parallel.For(0, testData.Count() - 1, (i, loopState) =>
{
    resultData.Add(testData[i]);
});

  2011-11-29      ez      .NET
DEBUG 模式才顯示文字

利用 #if DEBUG,並在區段中加入要顯示的文字,將 web.config 的 debug mode 設定為 true,就可以輸出資料,再將 debug mode 設定為 false,就可以隱藏資料!

#if DEBUG
Response.Write("要輸出的資訊");
#endif

  2011-11-29      ez      .NET
Stopwatch 計算耗費時間

DateTime的時間單位最小為秒,如果要到毫秒就必須使用Stopwatch,可以用來計算程式執行時間!

static void Main(string[] args)
{
	Stopwatch sw = new Stopwatch();
	sw.Start();
	for (int i = 1; i <= 10; i++)
	{
		System.Threading.Thread.Sleep(1000);
	}
	sw.Stop();
	Console.WriteLine(sw.ElapsedMilliseconds);
}

  2011-11-29      ez      .NET
Linux Mint

軟體下載:http://linuxmint.com/ Linux Mint 最早的版本出現在 2006 年,當時的版本代號為 Ada,其版本編號被設定為 1.0 版。雖然是 1.0 版,但此版本被視為是 Beta 版本,且此專案在當時並沒有引起太多人的重視。有趣的是,1.0 版從未推出正式穩定版本,這可能也是軟體開發史上少見的特殊案例(採用正式版本編號,但從未發行正式版本)。


  2011-11-29      ez      Linux
WordPress 安裝在 IIS 發生 中文網址 異常問題

IIS 可以執行 php,所以可以安裝 WordPress,但當網址含有中文時,就會發生異常狀況,此時只要修改

wp-includes\class-wp.php

// 找到
 $pathinfo = $_SERVER['PATH_INFO'];
 // 改成
 $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'BIG5');

// 找到
 $req_uri = $_SERVER['REQUEST_URI'];
 // 改成
 $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'BIG5');

即可正常使用中文網址!


  2012-06-27      ez      WordPress
判斷是否為日期

可以用來判斷用戶日期格式是否輸入錯誤!

/// <summary>
/// 判斷是否為日期
/// </summary>
public static bool IsDate(object obj)
{
    DateTime date;

    return DateTime.TryParse(obj.ToString(), out date);
}

  2011-11-29      ez      .NET