Les Snippets

Connexion

Convertir une IP en long et un long en IP ( IP2Long, Long2IP )

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 02/04/2006 13:40:00 et initié par Nix [Liste]
Date de mise à jour : 04/11/2007 13:16:41
Vue : 34393
Catégorie(s) : Réseau & Internet, Web
Langages dispo pour ce code :
- ASP.NET 2.x, VB 2005
- C# 1.x
- C# 2.x
- PHP 4, PHP 5
- VB6, VBA
- C, C++, C++ .NET 1.x, C++ .NET 2.x
- mySQL
- SQL 2005
- Python
- Voir tous les langages pour ce code snippet



Langage : SQL 2005
Date ajout : 04/11/2007
Posté par skweeky [Liste]
DateMAJ : 04/11/2007

CREATE FUNCTION dbo.ConvertIntToIp ( @AddrInt int )

RETURNS varchar(15)

BEGIN

RETURN CAST(CAST(CAST(( @AddrInt & 0xFF000000 ) / 0x01000000 AS binary(1)) as tinyint) as varchar(3))

+ '.'

+ CAST(CAST(CAST(( @AddrInt & 0xFF0000 ) / 0x010000 AS binary(1)) as tinyint) as varchar(3))

+ '.'

+ CAST(CAST(CAST(( @AddrInt & 0xFF00 ) / 0x0100 AS binary(1)) as tinyint) as varchar(3))

+ '.'

+ CAST(CAST(CAST(( @AddrInt & 0xFF ) AS binary(1)) as tinyint) as varchar(3))

END

GO

CREATE FUNCTION dbo.ConvertIpToInt ( @AddrIp varchar(15) )
RETURNS int 
BEGIN
DECLARE @first smallint 
DECLARE @second smallint

DECLARE @third smallint

DECLARE @fourth smallint

DECLARE @result int

DECLARE @test varchar(4)

DECLARE @cur_loc tinyint

DECLARE @last_loc tinyint

-- Premier Bloc

SET @cur_loc = CHARINDEX('.', @AddrIp)

SET @test = LEFT(LEFT(@AddrIp, @cur_loc - 1), 3)
IF PATINDEX('%[^0-9]%', @test) = 0 
BEGIN

SET @first = CAST(@test AS smallint)

-- Second Bloc
SET @last_loc = @cur_loc + 1 
SET @cur_loc = CHARINDEX('.', @AddrIp, @last_loc)

SET @test = LEFT(SUBSTRING(@AddrIp, @last_loc,

@cur_loc - @last_loc), 3)
IF PATINDEX('%[^0-9]%', @test) = 0 
BEGIN 
SET @second = CAST(@test AS smallint)


-- Troisième Bloc
SET @last_loc = @cur_loc + 1 
SET @cur_loc = CHARINDEX('.', @AddrIp, @last_loc)

SET @test = LEFT(SUBSTRING(@AddrIp, @last_loc,

@cur_loc - @last_loc), 3)
IF PATINDEX('%[^0-9]%', @test) = 0 
BEGIN

SET @third = CAST(@test AS smallint)

-- Quatrième Bloc
SET @last_loc = @cur_loc + 1 
SET @test = LEFT(SUBSTRING(@AddrIp, @last_loc,

LEN(@AddrIp)

- @last_loc + 1), 3)
IF PATINDEX('%[^0-9]%', @test) = 0 
BEGIN

SET @fourth = CAST(@test AS smallint)

END

END

END

END

-- Résultat
IF @first <= 255 
AND @second <= 255
AND @third <= 255 
AND @fourth <= 255 
BEGIN

IF @first <= 127 
SET @result = CAST(@first as int) * 0x1000000
+ CAST(@second as int) * 0x10000 + CAST(@third as int)


* 0x100 + CAST(@fourth as int)
ELSE 
SET @result = ( CAST(( @first & 0x7F ) as int) * 0x1000000
+ CAST(@second as int) * 0x10000 
+ CAST(@third as int) * 0x100
+ CAST(@fourth as int) ) | 0x80000000 
END

RETURN @result

END

GO


Snippets en rapport avec : Ip, Convertir, Long, Iptolong, Longtoip



Codes sources en rapport avec : Ip, Convertir, Long, Iptolong, Longtoip

{Visual Basic, VB6, VB.NET, VB 2005} MASTERLOCATER.NET
Cette source vous donne quulque information regionnal a partir de votre addresse IP.utilisation des ...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTISSEUR COULEUR FORMAT LONG AU FORMAT RGB
Ce code permet d'obtenir ls trois composantes RGB à partir d'une couleur sélectionnée avec, par exem...

{Python} SCANNEUR D'IP21
Voilà, c'est un petit scanneur de pub, Il est en ligne de commande ce qui permet de l'utiliser en...

{C / C++ / C++.NET} CONVERTISSEUR / CRYPTEUR D'IP
Bonjour, J'ai vu plusieurs IP Crypteur sur le site mais... - Sur l'un, on doit tapez l'adresse...

{PHP} CHIFFRES EN LETTRES
cette source converti des chiffres en des chaines de caractère en toute lettre supporte jusqu'à 999...

{C / C++ / C++.NET} CRYPTEUR-DÉCRYPTEUR-IP
Logiciel qui pourra vous servir a crypter votre adresse IP et par la suite le décrypter avec l'app...

{Python} DIVISIONS AVEC PRÉCISION RÉGLABLE
Voici un petit programme qui vous permet d'avoir le résultat de divisions avec la précision que vous...

{C / C++ / C++.NET} ID3 TAG COVER ALBUM IMAGE
album art cover ajout pour mp3 choisi un dossier avec de la music mp3 si il y a un ou plusieur im...

{C / C++ / C++.NET} JEU PUISSANCE IV
Coder en langage C++, ce programme permet une fois lancer de jouer au puissance IV et ce en console....

{Python} SIMPLE COMPARATEUR IPV4 EN PYTHON
Comparaison de deux adresses IPv4 pour determiner si elles sont sur le meme sous reseau. Le script e...