giovedì 12 giugno 2008

Simpatico...

il sordo:
non mi sento tanto bene...

il cieco:
lo dicevo io, non ti vedevo messo bene...

martedì 10 giugno 2008

ntvdm.exe cpu 100%

Purtroppo esistono ancora applicazioni dos che necessitano di girare in ambienti windows recenti. Uno dei problemi maggiori è quello che si ha con la ntvdm e cioè con l'emulatore ms-dos. Quando avviamo questo tipo di programmi dos notiamo un rallentamento del calcolo dovuto (task manager) al consumo a dir poco considerevole di cpu del file ntvdm.exe vicino al 100% (90% / 99%).

Se non si hanno necessità particolari si può risolvere utilizzando un emulatore alternativo quale è DOSBOX ma si perde il supporto alla stampa (che non è poco).

Ho risolto installando un software Tame dos scaricabile in versione trial 30 giorni (http://www.tamedos.com/). Il costo di licenza è molto basso; poco meno di 18 € per ottenere la key. Il suo funzionamento è semplicissimo. Il solito wizard (avanti avanti) per installarlo. In automatico controllerà il consumo della cpu che sarà possibile monitorare con l'apposito monitor contenuto nel pacchetto.

Happy D0S

martedì 3 giugno 2008

Confrontare IP con C#

In questo momento non ho tempo per approfondire l'argomento cmq se avete bisogno di confrontare due indirizzi ip o per controllare se un indirizzo ip appartiene ad un range di indirizzi ip ho scritto un pò di codice:

using System;
using System.Text;

namespace IPManager
{
class Program
{
static void Main(string[] args)
{
string cmd;
Console.WriteLine("^^^^^^^^^^^^PROG DI TEST PER IP^^^^^^^^^^^^");
Console.WriteLine("-> INSERISCI UN IP NEL FORMATO 192.168.1.1: ");
cmd = Console.ReadLine();
IPAddress ip = new IPAddress(cmd);
Console.WriteLine("-> HAI INSERITO: " + ip.ToString() + "");
Console.WriteLine("-> LO CONVERTO IN LONG: " + ip.Parse(ip.ToString()).ToString() + "");
Console.WriteLine("----------------------------------------");
Console.WriteLine("-> INSERISCI UN RANGE DI IP PER: " + ip.ToString() + "");
Console.WriteLine("-> DA: ");
cmd = Console.ReadLine();
IPAddress ipA = new IPAddress(cmd);
Console.WriteLine("-> A: ");
cmd = Console.ReadLine();
IPAddress ipB = new IPAddress(cmd);
if (ip.isInRange(ipA, ipB))
{
Console.WriteLine("-> " + ip.ToString() + " E' NEL RANGE!");
}
else
{
Console.WriteLine("-> " + ip.ToString() + ">NON< E' NEL RANGE!");
}
}
}
class IPAddress
{
private string ipStr;
public long NumericIPAddress
{
get { return ipNum; }
set { ipNum = value; }
}
private long ipNum;

public IPAddress(string ipAddress)
{
this.ipStr = ipAddress;
this.ipNum = this.Parse(ipAddress);
}

public long Parse(string ipAddress)
{
string[] arr;
arr = ipAddress.Split('.');
return (long.Parse(arr[0]) * 16777216) + (long.Parse(arr[1]) * 65536) + (long.Parse(arr[2]) * 256) + long.Parse(arr[3]);
}
public bool isInRange(IPAddress ipA, IPAddress ipB)
{
if ((ipA.ipNum <= this.ipNum) && (ipB.ipNum >= this.ipNum))
{
return true;
}
else
{
return false;
}
}
public override string ToString()
{
return ipStr;
}
}
}

Gnagna


Immediatamente tra i preferiti...