abonnement Unibet Coolblue Bitvavo
pi_58709859
Ik heb een vraagje, ik wil ranges van IP adressen opslaan echter wil ik deze niet dubbel in mijn lijst hebben.

Voorbeeld qua MySQL opzet
1
2
3
4
5
6
7
8
CREATE TABLE `ipranges` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(128) NOT NULL,
  `start_range` bigint(11) NOT NULL,
  `end_range` bigint(11) NOT NULL,
  `lastdate` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;


en wat voorbeelden

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
INSERT INTO `ipranges` VALUES (1, 'Essent Kabelcom B.V.', 1380450304, 1380712447, '2008-05-16 16:09:34');
INSERT INTO `ipranges` VALUES (2, '@Home Maastricht Headend block', 1411268608, 1411280383, '2008-05-16 16:10:22');
INSERT INTO `ipranges` VALUES (3, 'AOL', 1043529728, 1043562495, '2008-05-16 16:13:48');
INSERT INTO `ipranges` VALUES (4, 'Essent Kabelcom B.V.', 1410859008, 1411383295, '2008-05-16 16:20:06');
INSERT INTO `ipranges` VALUES (5, 'CPE Customers NL', 1345961472, 1345965823, '2008-05-16 16:20:08');
INSERT INTO `ipranges` VALUES (6, 'Essent Kabelcom', -646193152, -646184961, '2008-05-16 16:20:38');
INSERT INTO `ipranges` VALUES (7, 'Casema BV', 1398237184, 1398239231, '2008-05-16 16:21:46');
INSERT INTO `ipranges` VALUES (8, 'Versatel Consumer is one of the largest ISP\\''s in the Netherlands', 1473445888, 1473462271, '2008-05-16 16:24:16');
INSERT INTO `ipranges` VALUES (9, 'Telenet Operaties N.V.', 1421869056, 1422131199, '2008-05-16 16:29:50');
INSERT INTO `ipranges` VALUES (10, 'XS4ALL Internet BV', 1348772352, 1348776703, '2008-05-16 16:41:01');
INSERT INTO `ipranges` VALUES (11, 'Versatel Consumer is one of the largest ISP\\''s in the Netherlands', 1473511424, 1473527807, '2008-05-16 16:41:01');
INSERT INTO `ipranges` VALUES (12, 'Essent Kabelcom', -646234112, -646217729, '2008-05-16 16:42:03');
INSERT INTO `ipranges` VALUES (13, 'Telfort Internet', 1386938368, 1386975999, '2008-05-16 16:44:45');
INSERT INTO `ipranges` VALUES (14, 'Wanadoo Nederland', 1386020864, 1386086399, '2008-05-16 16:45:46');
INSERT INTO `ipranges` VALUES (15, 'Telfort Internet', 1386938368, 1386975999, '2008-05-16 16:47:26');
INSERT INTO `ipranges` VALUES (16, 'ADSL18', 1414987776, 1415053311, '2008-05-16 16:49:09');
INSERT INTO `ipranges` VALUES (17, 'XS4ALL Internet BV', 1350434816, 1350500351, '2008-05-16 16:49:13');
INSERT INTO `ipranges` VALUES (18, 'Woonstichting De Key', -1854668800, -1854662657, '2008-05-16 16:53:35');
INSERT INTO `ipranges` VALUES (19, 'Essent Kabelcom B.V.', 1380450304, 1380712447, '2008-05-16 16:53:50');
INSERT INTO `ipranges` VALUES (20, 'ADSL-GO-PLUS', 1374724096, 1374728191, '2008-05-16 16:54:45');
INSERT INTO `ipranges` VALUES (21, 'Telenet Operaties N.V.', 1369702400, 1369767935, '2008-05-16 16:55:37');
INSERT INTO `ipranges` VALUES (22, '@Home Roosendaal Headend block', 1410990080, 1411055615, '2008-05-16 16:56:05');
INSERT INTO `ipranges` VALUES (23, 'CPE Customers NL', 1308107264, 1308109055, '2008-05-16 16:58:18');
INSERT INTO `ipranges` VALUES (24, '@Home Venlo Headend block', 1411186688, 1411206143, '2008-05-16 16:58:35');
INSERT INTO `ipranges` VALUES (25, 'Casema NV', 1398035456, 1398036479, '2008-05-16 16:58:46');
INSERT INTO `ipranges` VALUES (26, 'ADSL17', 1414922240, 1414987775, '2008-05-16 17:00:59');
INSERT INTO `ipranges` VALUES (27, 'NTL Internet', 1375731712, 1377828863, '2008-05-16 17:05:05');
INSERT INTO `ipranges` VALUES (28, 'Telenet Operaties N.V.', 1421869056, 1422131199, '2008-05-16 17:09:45');
INSERT INTO `ipranges` VALUES (29, 'Telenet', 1309933568, 1310195711, '2008-05-16 17:11:21');
INSERT INTO `ipranges` VALUES (30, 'Wanadoo ADSL Customers with static addresses', 1435500544, 1435762687, '2008-05-16 17:15:44');
INSERT INTO `ipranges` VALUES (31, 'Alice DSL', 1310400512, 1310408703, '2008-05-16 17:16:34');
INSERT INTO `ipranges` VALUES (32, 'ADSL16', 1414856704, 1414922239, '2008-05-16 17:18:32');
INSERT INTO `ipranges` VALUES (33, 'CPE Customers NL', -725942272, -725935617, '2008-05-16 17:19:28');
INSERT INTO `ipranges` VALUES (34, 'Wanadoo ADSL Customers with static addresses', 1435500544, 1435762687, '2008-05-16 17:21:50');
INSERT INTO `ipranges` VALUES (35, 'ADSL34', 1449066496, 1449132031, '2008-05-16 17:26:08');
INSERT INTO `ipranges` VALUES (36, 'ADSL-GO-PLUS', 1374720000, 1374724095, '2008-05-16 17:31:09');
INSERT INTO `ipranges` VALUES (37, 'UPC Broadband Operations B.V.', 411303936, 411369471, '2008-05-16 17:31:30');
INSERT INTO `ipranges` VALUES (38, 'ADSL10', 1372520448, 1372585983, '2008-05-16 17:31:48');


Zoals je ziet zitten hier dubbele in. Echter doe ik wel een check met de volgende code

1
2
3
4
5
6
7
8
<?php
    $sql 
"SELECT id
            FROM ipranges
            WHERE (start_range >= " 
ip2long(getIp()) . " AND end_range   <= " ip2long(getIp()) . ")
            LIMIT 1"
;
    
$query mysql_query($sql);
    
$items mysql_num_rows($query);
?>


Nu snap ik niet waar ik fout ga, want de query lijkt mij goed.

Iemand? :D
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 16 mei 2008 @ 17:43:27 #102
187069 slacker_nl
Sicko pur sang
pi_58709992
Waarom niet met whois informatie de range ophalen en die in cidr format opslaan.

Je hoeft dan alleen de cidr notatie te achterhalen en daar een unique constraint op zetten.
In theory there is no difference between theory and practice. In practice there is.
pi_58710566
cidr formaat? de range haal ik sowieso via ripe op maar deze wil ik in de database zetten voor later/huidig gebruik.

Maar ziet iemand waar ik de fout in ga?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 16 mei 2008 @ 18:37:42 #104
187069 slacker_nl
Sicko pur sang
pi_58710940
quote:
Op vrijdag 16 mei 2008 18:18 schreef Chandler het volgende:
cidr formaat? de range haal ik sowieso via ripe op maar deze wil ik in de database zetten voor later/huidig gebruik.

Maar ziet iemand waar ik de fout in ga?
CIDR formaat is dit:

127.0.0.1/32 == 127.0.0.1
194.134.32.0/24 == 194.134.32.0 - 194.134.32.255

Dat is dus de range die je wilt opslaan
In theory there is no difference between theory and practice. In practice there is.
pi_58711176
quote:
Op vrijdag 16 mei 2008 17:35 schreef Chandler het volgende:
Ik heb een vraagje, ik wil ranges van IP adressen opslaan echter wil ik deze niet dubbel in mijn lijst hebben.

Voorbeeld qua MySQL opzet
[ code verwijderd ]

en wat voorbeelden
[ code verwijderd ]

Zoals je ziet zitten hier dubbele in. Echter doe ik wel een check met de volgende code
[ code verwijderd ]

Nu snap ik niet waar ik fout ga, want de query lijkt mij goed.

Iemand?
Het zal vast aan mij liggen, maar ik zie geen dubbelen.
pi_58711294
Je kan van het IP ook een Unique maken.
  vrijdag 16 mei 2008 @ 19:00:13 #107
3677 SuperRembo
Sinds 1998
pi_58711365
quote:
Op vrijdag 16 mei 2008 17:35 schreef Chandler het volgende:
[...]

Nu snap ik niet waar ik fout ga, want de query lijkt mij goed.
Je vind het vreemd dat een query met LIMIT 1 niet meer dan 1 row oplevert?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_58711956
quote:
Op vrijdag 16 mei 2008 18:51 schreef Light het volgende:

[..]

Het zal vast aan mij liggen, maar ik zie geen dubbelen.
check entry 13 && 15, beide van telfort en hebben dezelfde begin/eind waardes.
pi_58715800
quote:
Op vrijdag 16 mei 2008 19:00 schreef SuperRembo het volgende:

[..]

Je vind het vreemd dat een query met LIMIT 1 niet meer dan 1 row oplevert?
SuperRembo, dat hoeft toch ook niet. Als de regel bestaat dan krijg ik 1 ID terug bestaat deze niet dan krijg ik 0 terug!

Er gaat iets fout in de where al snap ik niet wat
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 16 mei 2008 @ 22:30:30 #110
107951 JortK
Immer kwaliteitsposts
pi_58716979
quote:
Op vrijdag 16 mei 2008 22:19 schreef Chandler het volgende:

[..]

SuperRembo, dat hoeft toch ook niet. Als de regel bestaat dan krijg ik 1 ID terug bestaat deze niet dan krijg ik 0 terug!

Er gaat iets fout in de where al snap ik niet wat
Kijk nou eens goed wat je conditie is: start_range moet kleiner dan of gelijk aan x zjin en end_range moet groter dan of gelijk aan x zijn. Met andere woorden: end_range moet kleiner zjin dan start_range, of start_range is gelijk aan end_range. Daar komt nooit een record uit natuurlijk.
pi_58717298
start range 255.255.255.0
end range 255.255.255.255

ls ik nu 255.255.255.10 dan klopt mijn query toch ;)

1
2
3
4
5
6
7
8
<?php
    $sql 
"SELECT id
            FROM ipranges
            WHERE (start_range >= " 
ip2long("255.255.255.10") . " AND end_range   <= " ip2long("255.255.255.10") . ")
            LIMIT 1"
;
    
$query mysql_query($sql);
    
$items mysql_num_rows($query);
?>


Ik zie de fout niet... zoals je hierboven hebt beschreven, maar zal ook wel komen omdat ik gewoon moe ben ;) :P
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_58717419
Draai het nou gewoon maar om, suffie.
pi_58717640
quote:
Op vrijdag 16 mei 2008 23:18 schreef Chandler het volgende:
start range 255.255.255.0
end range 255.255.255.255

ls ik nu 255.255.255.10 dan klopt mijn query toch
[ code verwijderd ]

Ik zie de fout niet... zoals je hierboven hebt beschreven, maar zal ook wel komen omdat ik gewoon moe ben
Kijk er nog maar eens naar als je wakker bent dan
En vergelijk dan het adres 255.255.255.10 met de startwaarde 255.255.255.0. En dan aan jou de vraag of start groter of kleiner is dan het ip waarmee je vergelijkt.
pi_58718868
Of gebruik BETWEEN, dan kan je 't niet verkeerd doen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_58719139
quote:
Op zaterdag 17 mei 2008 00:25 schreef SuperRembo het volgende:
Of gebruik BETWEEN, dan kan je 't niet verkeerd doen :P
U zei?

1
2
3
<?php
$query 
'SELECT id FROM ipranges WHERE start_range BETWEEN ip AND  end_range';
?>
pi_58719333
quote:
Op zaterdag 17 mei 2008 00:39 schreef Light het volgende:

[..]

U zei?
[ code verwijderd ]
Never underestimate the power of stupid people using powerful tools
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_58719433
Net een topic geopend terwijl ik hier hier kon vragen
[MYSQL] INT / SMALLINT
ne okuyon, bokmu var?
  zaterdag 17 mei 2008 @ 01:21:59 #119
178193 Juicyhil
Bekende FOK!ker
pi_58719863
Is er geen dergelijk topic voor C#/.NET ? Tenminste de èchte talen...
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_58722199
Ik weet niet of dit hier hoort maar:

Ik heb een contactscriptje gemaakt, met een mail commando (php). Maar als je accenten gaat toevoegen zoals ü en dergeljke komt hij er heel raar uit te zien. Hoe kan je dat verhelpen?
pi_58722860
quote:
Op vrijdag 16 mei 2008 23:23 schreef Farenji het volgende:
Draai het nou gewoon maar om, suffie.
Ik heb het gedaan en het werkt! al snap ik het niet geheel waarom je kleiner dan en groter dan om moest draaien...

Ik dacht juist dat je iets binnen die range moest checken maar goed het werkt!
quote:
Op zaterdag 17 mei 2008 01:21 schreef Juicyhil het volgende:
Is er geen dergelijk topic voor C#/.NET ? Tenminste de èchte talen...
Ik zou zeggen, start er een en stel je vragen!!!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_58723399
quote:
Op zaterdag 17 mei 2008 10:59 schreef Chandler het volgende:Ik zou zeggen, start er een en stel je vragen!!!
Inderdaad! En maak mij gelijk lid wil je
  zaterdag 17 mei 2008 @ 11:50:46 #123
107951 JortK
Immer kwaliteitsposts
pi_58726784
quote:
Op zaterdag 17 mei 2008 09:43 schreef Flaccid het volgende:
Ik weet niet of dit hier hoort maar:

Ik heb een contactscriptje gemaakt, met een mail commando (php). Maar als je accenten gaat toevoegen zoals ü en dergeljke komt hij er heel raar uit te zien. Hoe kan je dat verhelpen?
niemand?

het euro tekentje wordt bijvoorbeeld €

!! -> utf8 als set isntellen en dan in de headers, is genoeg

[ Bericht 6% gewijzigd door Flaccid op 17-05-2008 15:45:43 ]
  zondag 18 mei 2008 @ 11:02:16 #125
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_58739458
Een klant van mij heeft een huidige database met alle NAW gegevens van de ondernemers van Nederland en heeft deze onderverdeeld in tabellen zoals:

woonplaats_a
woonplaats_b
woonplaats_c

enz.

Nu ik de gehele site opnieuw ga bouwen incl de database, vroeg ik mij af of er betere manieren zijn om dit onder te verdelen?

Op dit moment is het namelijk ook niet echt snel zoeken door de database, maar dit kan ook een fout in het runnen van de query's zijn.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')