カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

自身のIPアドレスを取得

using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Net;


public static int check_ip()
{
  string hostname;     // ホスト名
  IPHostEntry ipentry; // IPエントリ(IPアドレスリスト)
  IPAddress ipaddr;    // IPアドレス
  string ipaddress;    // IPアドレス
  string[] IP_ARRAY;
  int n;

  ipaddress = "0.0.0.0";

  try
  {
    // ホスト名を取得
    hostname = Dns.GetHostName();

    // ホスト名からIPアドレスを取得する
    ipentry = Dns.GetHostEntry(hostname);

    // windows7だと、IPアドレスがインデックス「2」のため
    // ループで取り出す
    for (int i = 0; i < ipentry.AddressList.Length; i++)
    {
      // Regex : 正規表現
      Regex myRegex = new Regex(@"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$");
      // 対象文字列が存在するか?
      if (myRegex.IsMatch(ipentry.AddressList[i].ToString()))
      {
        ipaddr = ipentry.AddressList[i];
        ipaddress = ipaddr.ToString();
        break;
      }
    }
  }
  catch(Exception ex)
  {
    MessageBox.Show(ex.Message);
    Application.Exit();
  }

  // ネットワーク識別子を取得
  IP_ARRAY = ipaddress.Split('.');

  // ネットワーク識別子を返す
  n = int.Parse(IP_ARRAY[2]);

  return n;
}
3,607 views

デフォルトゲートウェイのアドレスを取得する

要参照設定

System.Net.NetworkInformation;

public static void getDefaultGateway()
{
 NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

 foreach (NetworkInterface adapter in adapters)
 {
  IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
  GatewayIPAddressInformationCollection addresses =
   adapterProperties.GatewayAddresses;
  if (addresses.Count > 0)
  {
   foreach (GatewayIPAddressInformation address in addresses)
   {
    Console.WriteLine(address.Address.ToString());
   }
  }
 }
}

adapter.Name
ネットワークアダプタの名前を取得
例)ローカル エリア接続

adapter.Id
ネットワークアダプタのID
例){A32F1F13-1CBD-4300-ADE6-D3AEA1426A52}

adapter.OperationalStatus
ネットワーク接続の現在の操作状態を取得
例)Up

adapter.Speed
ネットワークインターフェイスの速度を取得
例)100000000

adapter.Description
インターフェイスの説明を取得
例)Broadcom NetXtreme 57xx Gigabit Controller – パケット スケジューラ ミニポート

11,776 views

ランダムなパスワード生成

function mkCrypt()
{
    // 配列生成
    $ARRAY1 = range("0", "9");
    $ARRAY2 = range("a", "z");
    $ARRAY3 = range("A", "Z");
    $ARRAY  = array_merge($ARRAY1, $ARRAY2, $ARRAY3);

    $a_pw = "";
    $cnt  = count($ARRAY) - 1;

    // 乱数初期化
    srand((double)microtime()*1000000);


    // ランダム暗号生成
    for($i = 1; $i < = 8; $i++)
    {
        $num   = round(rand(0, $cnt));
        $a_pw .= $ARRAY[$num];
    }

    return $a_pw;
}

または、一意なIDを生成するuniqid関数を使用する

md5(uniqid()); //php5以降のみ
md5(uniqid(rand(), true));

Apache Basic 認証用パスワード生成
function CryptBasic($id, $pw)
{
    $sal = substr($id, 0, 2);
    $pw_crypt = crypt($pw, $sal);

    return $pw_crypt;
}
1,222 views

Windows7 administratorでログイン

Windows7にてAdministratorでログインするには。

[管理ツール]->[コンピュータの管理]->[ローカルユーザーとグループ]->[ユーザー]を開き、
Administratorのプロパティで、「アカウントを無効にする」のチェックを解除する。

もしくは、以下のコマンドを実行

net user administrator /active:yes
2,529 views

ACCESS コントロールを追加できなくなった時

テーブルのフィールドと同様で、コントロールもカウントされているらしく
追加できなくなることがある。
そのとき、フォーム又はレポートの名前を変更して再度追加してくださいのようなメッセージが出るが、最適化しても追加はできない。

【解決方法】
新規にmdbを作成し、インポートし直す

2,384 views