C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.77992 の関連記事表示

<< 0 >>
■77992  ライセンス認証について
□投稿者/ 澤田 -(2015/12/06(Sun) 16:59:54)

    分類:[C#] 

    ライセンス認証を下記のIPv6でやっているのですが、
    認証がうまくいかない方が多々いらっしゃるので、
    HDDのボリュームシリアルにて認証にしようと思うのですが、
    以下のソースをHDDボリュームシリアルに書き換える場合はどうすれば良いのでしょうか(T_T)
    後、何故か不正起動を想定して自分のIPを消した状態で起動させてみると本来は表示されるはずの警告も出ないのですが、根本的な書き方が間違っているのでしょうか(T_T)

    よろしければHDDボリュームシリアル等の修正点を書き直したものを記載していただけますととても助かります(T_T)


    private void button6_Click_1(object sender, EventArgs e)
    {
    NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
    String my = "IPv6を入力している"; //admin
    String USER1 = "IPv6を入力している"; //USER名
    String USER2 = "IPv6を入力している";//USER名
    foreach (NetworkInterface adapter in adapters)
    {
    if (adapter.OperationalStatus == OperationalStatus.Up)
    {
    IPInterfaceProperties ip_prop = adapter.GetIPProperties();
    UnicastIPAddressInformationCollection addrs = ip_prop.UnicastAddresses;
    foreach (UnicastIPAddressInformation addr in addrs)
    {
    Console.WriteLine(addr.Address.ToString());
    if (account == 0)
    {
    if (USER2 == addr.Address.ToString() || USER1 == addr.Address.ToString() || my == addr.Address.ToString())
    {

    button6.Visible = false;
    MessageBox.Show("認証完了しました。\", "認証完了", MessageBoxButtons.OK, MessageBoxIcon.Information);
    this.player = new SoundPlayer((Stream) Properties.Resources.w221);
    this.player.Load();
    if (this.player.IsLoadCompleted)
    {
    this.player.Play();
    }
    else
    {
    MessageBox.Show("未登録のIPアドレスです", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information);
    account = 0;
    Close();
    }
親記事 /過去ログ132より / 関連記事表示
削除チェック/

■77994  Re[1]: ライセンス認証について
□投稿者/ 魔界の仮面弁士 -(2015/12/06(Sun) 17:57:12)
    No77992 (澤田 さん) に返信
    > HDDのボリュームシリアルにて認証にしようと思うのですが、
    
    HDDシリアルではなく、ボリュームシリアルでしょうか?
    
    ボリュームシリアルというんは、コマンドプロンプトから
     DIR C:
    などを打ち込んだときに、
     ドライブ C のボリューム ラベルは LABELNAME です
     ボリューム シリアル番号は ****-**** です
    と表示される値のことですよね。
    
    であれば、こんな感じで取得できます。
    
    
    string drive = "C:";
    
    var diskInfo = new System.Management.ManagementObject(
      "Win32_LogicalDisk.DeviceId=\"" + drive + "\"");
    
    diskInfo.Get();
    
    string serialNumber = diskInfo["VolumeSerialNumber"].ToString();
    
    Console.WriteLine(serialNumber);
    
    
    
    > HDDのボリュームシリアルにて認証にしようと思うのですが、
    
    ボリュームシリアルは、それ単独では認証には向きません。
    
    たとえば、DOS4の場合、1995年12月26日 午後9時55分41秒94 にフォーマットされた場合、
    ボリュームシリアルは 3578-1D02 となりますが、これは下記の式によって算出されます。
    
     月日  12/26  0C 1A    時分  21:55  15 37
     秒数  41.94  29 5E    西暦   1995    07CB
     ----------------------    ----------------------
     合計         35 78    合計         1D 02
    
    
    このように、フォーマット処理を行ったときのタイムスタンプであることから、
    メーカー製 PC のように、ディスクイメージを複製してセットアップされた PC 群は、
    別の端末であっても、すべて同一の文字列を返すことが多いですし、それに
    再セットアップでフォーマットすると、別の文字列になってしまいますよね。
    
    
    > 後、何故か不正起動を想定して自分のIPを消した状態で起動させてみると
    > 本来は表示されるはずの警告も出ないのですが、根本的な書き方が間違っているのでしょうか(T_T)
    「自分のIPを消した状態」というのが何を指しているのか読み取れなかったのです、
    その消した状態で該当コードを『ステップ実行』し、それぞれの変数の内容が
    想定してある通りのものであるのか確認することで、問題点が見えてくるかと思います。
    
    
    
    > よろしければHDDボリュームシリアル等の修正点を書き直したものを記載していただけますととても助かります(T_T)
    それは質問ではなく、開発依頼ですよね。この掲示板では、その手の依頼は嫌われる傾向にあります。
    
    この掲示板では、(広告・宣伝は NG とはいえ)お仕事の依頼は禁止されていなかったと思いますが、
    開発相談ではなく開発依頼なら、開発依頼系の専門サイトや代行業者等に頼ったほうが良いと思います。
    
    
    
    一方で、自己努力の上でどうしてもできなったものについては、問題箇所を
    明確にした上で投稿すると、比較的具体的な回答が得られることが多いです。
記事No.77992 のレス /過去ログ132より / 関連記事表示
削除チェック/

■77997  Re[2]: ライセンス認証について
□投稿者/ 澤田 -(2015/12/07(Mon) 00:17:05)
    2015/12/07(Mon) 00:47:52 編集(投稿者)
    2015/12/07(Mon) 00:47:50 編集(投稿者)
    2015/12/07(Mon) 00:47:46 編集(投稿者)

    <pre><pre>魔界の仮面弁士様、ご丁寧に返信有り難うございます(^^)

    何度も厚かましいのですが、問題点としましては、
    現状お客様のIPv6の情報取得は以下のソースで行っているのですが

    private void button1_Click(object sender, EventArgs e)
    {
    NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
    int num1 = 0;
    foreach (NetworkInterface networkInterface in networkInterfaces)
    {
    if (networkInterface.OperationalStatus == OperationalStatus.Up)
    {
    foreach (UnicastIPAddressInformation addressInformation in networkInterface.GetIPProperties().UnicastAddresses)
    {
    Console.WriteLine(addressInformation.Address.ToString());
    if (num1 == 0)
    {
    PhysicalAddress physicalAddress = networkInterface.GetPhysicalAddress();
    this.textBox1.Text = addressInformation.Address.ToString();
    this.textBox1.AppendText(":" + physicalAddress.ToString());
    int num2 = (int) MessageBox.Show("上記に表示された文字列をコピーして管理者に送ってください。", "ユーザー情報抽出完了", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
    num1 = 1;
    }
    }
    }
    }
    }


    本来はリンクローカルIPv6のfe80::から始まるIPのみを取得したいのですが、数人に一人は2001:や240f:等違ったものを抽出してしまいます^^;
    試行錯誤したのですが、本来抽出したいリンクローカルIPv6のfe80::から始まるIPのみを抽出する修正方法がわからずに参っている状態です(T_T)。。。

    何処を変更すれば良いのかご教授願えますと助かりますm(_ _)m

    </pre></pre>
記事No.77992 のレス /過去ログ132より / 関連記事表示
削除チェック/

■77998  Re[3]: ライセンス認証について
□投稿者/ 魔界の仮面弁士 -(2015/12/07(Mon) 01:42:01)
    No77997 (澤田 さん) に返信
    > 本来はfe80::から始まるIPのみを取得したいのですが、
    > 数人に一人は2001:や240f:等違ったものを抽出してしまいます^^;
    UnicastAddresses が返すユニキャストアドレスは、
    リンクローカルユニキャストアドレスだけではないですよね。

    OperationalStatus == Up だけの絞込みだと、
    ループバックI/F や Teredo トンネルなども混入してくるでしょうし。

    それを返してくる NetworkInterface は何でしたか? PrefixOrigin は?


    > 何処を変更すれば良いのかご教授願えますと助かりますm(_ _)m
    ネットワーク系には疎いので、教授するのは無理そうです。他の人にお任せ。
記事No.77992 のレス /過去ログ132より / 関連記事表示
削除チェック/

■78027  Re[4]: ライセンス認証について
□投稿者/ 澤田 -(2015/12/08(Tue) 18:15:25)
    魔界の仮面弁士様。
    一度諦めて一から全く違う構成で組み直したらなんとか出来ました(^^)
    何度もお手間を取らせてすみませんでした^^;



    No77998 (魔界の仮面弁士 さん) に返信
    > ■No77997 (澤田 さん) に返信
    >>本来はfe80::から始まるIPのみを取得したいのですが、
    >>数人に一人は2001:や240f:等違ったものを抽出してしまいます^^;
    > UnicastAddresses が返すユニキャストアドレスは、
    > リンクローカルユニキャストアドレスだけではないですよね。
    >
    > OperationalStatus == Up だけの絞込みだと、
    > ループバックI/F や Teredo トンネルなども混入してくるでしょうし。
    >
    > それを返してくる NetworkInterface は何でしたか? PrefixOrigin は?
    >
    >
    >>何処を変更すれば良いのかご教授願えますと助かりますm(_ _)m
    > ネットワーク系には疎いので、教授するのは無理そうです。他の人にお任せ。
記事No.77992 のレス / END /過去ログ132より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -