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 : 22224
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...

{C / C++ / C++.NET} SOLO OLELOADPICTURE
source pour loader des images jpg,wmf,bmp,ico etc avec OleLoadPicture et render load comme res...

{PHP} ANTI ASPIRATEUR DE SITE (ENCORE UN MAIS DIFFERENT )
Bonjour, je vous présente ma deuxième source: Comme vous le savez un aspirateur de site vas a l'i...

{Visual Basic, VB6, VB.NET, VB 2005} PACKET SNIFFER - SOCKET RAW
Bonjour, Voici le 4éme volet de mes sources sur la programmation des sockets asynchrones en VB.Net ...

{C / C++ / C++.NET} 0X0SCAN_PORT V1
Name : 0X0SCAN_PORT V1 Author : 0x0syscall Haksyn Security Team Date : 30/04/2008 Sc...

{PHP} GEO-LOCALISATION (CONTINENT)
Cette source est extrèmement simple et ne relève pas du génie de la programmation, toutefois j'ai mi...

{PHP} EXECUTER UN SCRIPT LONGUE DURÉE SANS LIMITATION DU SERVEUR
Généralement quand on doit exécuter des scripts d'entretien de base de données par exemple, ceux-ci ...