29 messaggi dal 17 settembre 2001
Ciao ragazzi,

ho ricavato un attributo ldap IPAddress, fornendo questo valore -1062730975. Come faccio a convertirlo in un IP, 192.168.0.0 ?

Che funzione posso utilizzare in c#.net 3.5 ?
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Il valore -1062730975 è un Int?

Puoi leggerlo come Uint? In questo caso puoi poi scrivere (se non erro):
uint ipnumber = 65536;
uint p1 = (ipnumber >> 24) & 255;
uint p2 = (ipnumber >> 16) & 255;
uint p3 = (ipnumber >>  & 255;
uint p4 = ipnumber & 255;

Ciao
29 messaggi dal 17 settembre 2001
Si è un integer.
Su un forum ho letto che un ragazzo ha risolto cosi...in VBs.

1. read the integer value from the msRADIUSFramedIPAddress attribute
= 168846386

2. convert it to binary and represent as 4 x 8 bit octets
= 00001010 00010000 01100100 00110010

3. convert each octet to its decimal equivalent
= 00001010 . 00010000 . 01100100 . 00110010

.. or ...

= 10 . 16 . 100 . 50


Io dovrei fare uguale in c#..
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
"lucaddr" <lucaddr> ha scritto nel messaggio news:348777@...
Si è un integer.
Su un forum ho letto che un ragazzo ha risolto cosi...in VBs.
1. read the integer value from the msRADIUSFramedIPAddress attribute = 168846386

2. convert it to binary and represent as 4 x 8 bit octets
= 00001010 00010000 01100100 00110010

3. convert each octet to its decimal equivalent
= 00001010 . 00010000 . 01100100 . 00110010

. or ...

= 10 . 16 . 100 . 50

Un'operazione più lunga non c'era?

Scherzi a parte, prova il mio codice con quel valore nell'Uint e vedrai che dovresti avere lo stesso risultato

int32 ha come limite:
~-2.000.000.000 e + 2.000.000.000 (circa).

Uint32:
0 e 4.194.000.000 (circa)

Il valore 168846386 è eseguito correttamente perché è inferiore a 2 miliardi. Oltre avresti il problema del numero negativo.

Ciao
29 messaggi dal 17 settembre 2001
Perfetto,


cosi funziona.

Int32 ipnumber = FramedIPAddress;
Int32 p1 = (ipnumber >> 24) & 255;
Int32 p2 = (ipnumber >> 16) & 255;
Int32 p3 = (ipnumber >> 8) & 255;
Int32 p4 = ipnumber & 255;

Grazie mille....

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.