Sie sind auf Seite 1von 4

CREATE TABLE ip_master

(
id
INT UNSIGNED NOT NULL auto_increment,
ip_poly
POLYGON
NOT NULL,
ip_from
INT UNSIGNED NOT NULL,
ip_to
INT UNSIGNED NOT NULL,
country_code CHAR(2)
NOT NULL,
country_name VARCHAR(128),
region_name VARCHAR(128),
city_name VARCHAR(128),
latitude DOUBLE,
longitude DOUBLE,
zip_code VARCHAR(30),
PRIMARY KEY (id),
SPATIAL INDEX (ip_poly)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

LOAD DATA LOCAL INFILE 'F:/Deepak/IP Address work/Location/IP2LOCATION-LITE-DB9/


ip_full_master.csv'
INTO TABLE ip_master
FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
LINES
TERMINATED BY '\r\n'
(
@ip_from, @ip_to,
@country_code, @country_string,@region_name, @city_string,@latitude, @longitud
e,@zip_string
)
SET
id
:= NULL,
ip_from := @ip_from,
ip_to := @ip_to,
ip_poly := GEOMFROMWKB(POLYGON(LINESTRING(
POINT(@ip_from, -1),
POINT(@ip_to, -1),
POINT(@ip_to,
1),
POINT(@ip_from, 1),
POINT(@ip_from, -1)
))),
country_code := @country_code,
country_name := @country_string,
region_name := @region_name,
city_name := @city_string,
latitude := @latitude,
longitude := @longitude ,
zip_code := @zip_string
;
CREATE PROCEDURE ip_alt_con()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE p VARCHAR(128) DEFAULT 0;
DECLARE match VARCHAR(128) DEFAULT 'No Match';
DECLARE p_bl VARCHAR(128) DEFAULT 0;

DECLARE x DOUBLE DEFAULT 0;


DECLARE x_bl DOUBLE DEFAULT 0;
DECLARE y DOUBLE DEFAULT 0;
DECLARE w DOUBLE DEFAULT 0;
DECLARE z DOUBLE DEFAULT 0;
DECLARE oid DOUBLE DEFAULT 0;
DECLARE c DOUBLE DEFAULT 0;
DECLARE i INT DEFAULT 0;
SELECT COUNT(*) FROM ip_lookup INTO n;
SET i=1;
WHILE i<=n DO
Set p= (select ip_addr from ip_lookup where id=i);
set x_bl= (SELECT count(*) FROM ip_bl_master WHERE ip_addr=p);
if (x_bl > 0) then BEGIN
Set match="Match";
END;
Else
Set match="No Match";
END IF;
Set oid= (select order_id from ip_lookup where id=i);
set x= (SELECT count(*) FROM ip_master WHERE MBRCONTAINS(ip_poly, POINTFROMWKB(P
OINT(INET_ATON(p), 0))));
if (x > 0) then BEGIN
INSERT INTO ip_c_details(order_id,id,ip_addr,country_name,city_name,zip_code,mat
ch_flag)
SELECT oid,i,p,country_name,city_name,zip_code,match
FROM ip_master
WHERE MBRCONTAINS(ip_poly, POINTFROMWKB(POINT(INET_ATON(p), 0)));
END;
Else
INSERT INTO ip_c_details(order_id,id,ip_addr,country_name,city_name,zip_code,mat
ch_flag)
values ( oid,i,p,NULL,NULL,NULL,match);
END IF;
SET i = i + 1;
END WHILE;
Select 'order_id','id','ip_addr','country_name','city_name','zip_code','match_fl
ag' UNION SELECT order_id,id,ip_addr,country_name,city_name,zip_code,match_flag
FROM ip_c_details
INTO OUTFILE 'F:/Deepak/IP Address work/Location/IP2LOCATION-LITE-DB9/test_con.c
sv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
End;
//

CREATE TABLE `ip_c_details`(


`order_id` DOUBLE UNSIGNED,
`id` INT(10) UNSIGNED,
`ip_addr` VARCHAR(64),
`country_name` VARCHAR(64),
`city_name` VARCHAR(64),
`region_name` VARCHAR(64),
`zip_code` VARCHAR(64),
`match_flag` VARCHAR(64)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE `ip_bl_master`(


`ip_addr` VARCHAR(64)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
delete from ip_bl_master;
LOAD DATA INFILE 'F:/PROJECTS-P/Deepak/Deepak/IP Address work/Blacklist/bl_maste
r.csv'
INTO TABLE ip_bl_master
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 0 LINES;

CREATE TABLE `ip_bl_lookup`(


id MEDIUMINT NOT NULL AUTO_INCREMENT,
ip_addr VARCHAR(64),
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

delete from ip_C_details;


delete from ip_lookup;
drop procedure ip_alt1;
LOAD DATA INFILE 'F:/Deepak/IP Address work/Location/IP2LOCATION-LITE-DB9/aug9.c
sv'
INTO TABLE ip_lookup
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 0 LINES;
delimiter //
call ip_alt1;

Das könnte Ihnen auch gefallen