2012年10月30日 星期二

使用HttpWebRequest抓取檔案

using System;
using System.IO;
using System.Net;

namespace test
{
  class Program
  {
    static void Main(string[] args)
    {
      try
      {
        string url = "http://192.168.1.1/test.txt";
        HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(url);
        Request.Timeout = 5;
        HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
           
        Stream dataStream = Response.GetResponseStream();
        byte[] buffer = new byte[8192];
                    
        FileStream fs = new FileStream("C:\\test.txt",FileMode.Create,FileAccess.Write);
        int size = 0;
        do
        {
          size = dataStream.Read(buffer, 0, buffer.Length);
          if (size > 0)
            fs.Write(buffer, 0, size);
        } while (size > 0);
        fs.Close();
            
        Response.Close();
        Console.WriteLine("Get File Done!!\n");
        Console.ReadKey();
      }
      catch(WebException ex)
      {
        Console.WriteLine("Get Nothing!!\n");
        Console.ReadKey();
      }
    }
  }
}

2012年10月11日 星期四

netsh 開放特定ip通過防火牆連線特定port

開放
netsh advfirewall firewall add rule name="pass" protocol=TCP localport=23 action=allow remoteip=192.168.0.0/16 enable=yes dir=in
pass:防火牆規則名稱,移除時會用到
23:開放port
192.168.0.0/16:開放ip(網段)
關閉(移除)
netsh advfirewall firewall del rule name="pass"
action=allow 開放
action=block 封鎖

2012年10月5日 星期五

php 呼叫外部程式

當程式中有需要呼叫外部程式,且不需等待外部程式跑完,即繼續執行時可用以下方法:
$file = popen("php test.php","r");
pclose($file);

2012年10月1日 星期一

netsh 防火牆開/關

WinXP
關閉防火牆
netsh firewall set opmode mode=disable profile=ALL
開啟防火牆
netsh firewall set opmode mode=enable profile=ALL

Win7也可用以上指令開關,但會提示指令已過時,建議改用以下指令:
關閉防火牆
netsh advfirewall set currentprofile state off
開啟防火牆
netsh advfirewall set currentprofile state on