Groups | Search | Server Info | Login | Register


Groups > dk.edb.internet.webdesign.serverside.php > #7336

Re: Accesskontrol

From Bertel Lund Hansen <gadekryds@lundhansen.dk>
Newsgroups dk.edb.internet.webdesign.serverside.php
Subject Re: Accesskontrol
Date 2020-05-23 11:46 +0200
Organization A noiseless patient Spider
Message-ID <1naa9hntt48jf$.dlg@lundhansen.dk> (permalink)
References (6 earlier) <1oa357603n8pt.dlg@lundhansen.dk> <puqa9mk1cam9.dlg@lundhansen.dk> <20200521182557.4b4d0b4ef8ccdc97e0e7bbd8@gmail.com> <157kyh0m1gw1r$.dlg@lundhansen.dk> <20200522132448.a062bc4ba6c9164b29d8338b@gmail.com>

Show all headers | View raw


Jan Hansen skrev:

> Jeg har forsøgt, men der må være noget, jeg har misforstået. 

Ja. Hvis du skal finde et element i et array, så kan du starte
forfra og sammenligne til der er en træffer. Worst case er at man
skal søge på alle elementerne.

Ved binær søgning sørger man først for at sortere det array der
skal søges på, og derefter sammenligner man med det midterste
element. Hvis det er for lille, søger man i den del der går fra
midten og op. Hvis det er for stort, søger man i den nederste
halvdel.

På samme måde opdeler man det nye afsnit der skal søges i og
bliver ved til elementet er fundet.

Hvis der er 1 mio. elementer, tager det højst
log2(1000000)=~19.93 søgninger, altså max 20. Det er noget andet
end den halve million man ellers skulle regne med i snit.

> Det er for det meste lidt hurtigere på 
> http://www.sniper-pistol.com/geoip/test1.php
> hvor jeg finder 100 tilfældige IP, først med det jeg har brugt 
> hidtil, og bagefter med noget, der skulle ligne binær søgning. 
> Det sjove er, at når jeg bytter om, så jeg først søger binært, 
> er den hidtige metode generelt hurtigere,
> http://www.sniper-pistol.com/geoip/test2.php

Den hurtigste måde at søge på som jeg har fundet, forudsætter at
man har ip-numrene konverteret til rene tal. Fra:

  	2.104.0.0-2.104.127.255
  	
omregnes til

  	40370176-40894463

Hvis man så én gang omregner den IP man vil søge på til
decimaltal, så kan en sammenligning gå hurtigt.

Her er den rutine hvor jeg tjekker om en given IP ligger indenfor
et af de intervaller jeg vil udelukke:

  	function ip2int ($ip) {
  		$num=0;
  		foreach (explode('.',$ip) as $unit)
  			$num=$num*256+$unit;
  		return $num;
  	}

  	// IP check
  	$ip=$_SERVER['REMOTE_ADDR'];
  	$ip_value=ip2int($ip);
  	$low=0;
  	$high=count($banned_intervals);
  	while ($high-$low>1) {
  		$point=intdiv($low+$high,2);
  		list($pointbot)=$banned_intervals[$point];
  		if ($ip_value<$pointbot)
  			$high=$point;
  		else
  			$low=$point;
  	}
  	list($bot,$top)=$banned_intervals[$low];
  	if ($bot<=$ip_value && $ip_value<=$top)
  		exit();

-- 
/Bertel

Back to dk.edb.internet.webdesign.serverside.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-06 17:32 +0200
  Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-06 12:38 -0400
    Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-06 19:04 +0200
  Re: Accesskontrol Kim Ludvigsen <kim@kimsside.dk> - 2020-05-06 19:02 +0200
    Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-06 19:24 +0200
      Re: Accesskontrol Kim Ludvigsen <kim@kimsside.dk> - 2020-05-06 19:41 +0200
        Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-06 21:32 +0200
  Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-06 21:17 +0200
    Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-06 21:44 +0200
      Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-06 23:26 +0200
        Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-07 05:38 +0200
        Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-08 13:50 -0400
          Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-08 21:39 +0200
            Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-08 16:06 -0400
            Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-09 08:35 +0200
              Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-09 13:34 +0200
                Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-09 20:21 +0200
                Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-09 15:02 -0400
                Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-09 21:17 +0200
    Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-07 22:44 -0400
      Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-08 07:17 +0200
      Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-08 11:55 +0200
        Re: Accesskontrol Krabsen <usenet@krabsen.dk> - 2020-05-08 14:50 +0200
        Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-08 17:56 +0200
          Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-08 19:09 +0200
            Re: Accesskontrol Kim Ludvigsen <kim@kimsside.dk> - 2020-05-08 19:21 +0200
              Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-08 20:03 +0200
            Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-08 19:29 +0200
              Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-08 20:13 +0200
              Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-08 14:34 -0400
        Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-08 14:30 -0400
          Re: Accesskontrol Krabsen <usenet@krabsen.dk> - 2020-05-10 08:21 +0200
            Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-10 10:20 -0400
              Re: Accesskontrol Krabsen <usenet@krabsen.dk> - 2020-05-11 08:35 +0200
                Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-11 09:34 -0400
                Re: Accesskontrol Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2020-05-11 15:42 +0200
        Re: Accesskontrol Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2020-05-09 10:47 +0200
          Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-09 15:27 +0200
            Re: Accesskontrol Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2020-05-10 00:47 +0200
          Re: Accesskontrol Jan Hansen <jan_hansen@sniper-pistol.com> - 2020-08-02 13:04 +0200
            Re: Accesskontrol "Dennis Munding" <nospa@mplease.dk> - 2020-08-02 15:22 +0000
              Re: Accesskontrol Jan Hansen <jan_hansen@sniper-pistol.com> - 2020-08-02 17:57 +0200
                Re: Accesskontrol Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2020-08-05 12:24 +0200
                Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-08-06 16:05 -0400
                Re: Accesskontrol Jan Hansen <jan_hansen@sniper-pistol.com> - 2020-08-07 10:19 +0200
                Re: Accesskontrol Jan Hansen <jan_hansen@sniper-pistol.com> - 2020-08-07 09:55 +0200
                Re: Accesskontrol Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2020-08-07 23:55 +0200
                Re: Accesskontrol Jan Hansen <jan_hansen@sniper-pistol.com> - 2020-08-08 11:42 +0200
                Re: Accesskontrol Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2020-08-09 11:28 +0200
  Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-07 19:37 +0200
    Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-07 22:38 +0200
      Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-08 07:23 +0200
        Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-08 11:06 +0200
          Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-08 11:40 +0200
        Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-16 17:38 +0200
          Re: Accesskontrol Arne Vajhøj <arne@vajhoej.dk> - 2020-05-16 12:12 -0400
            Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-16 18:57 +0200
          Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-16 18:13 +0200
            Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-16 18:46 +0200
              Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-16 19:29 +0200
            Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-16 19:42 +0200
              Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-17 11:03 +0200
          Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-16 18:44 +0200
            Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-21 16:39 +0200
              Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-21 16:45 +0200
                Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-21 18:25 +0200
                Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-21 18:53 +0200
                Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-21 20:25 +0200
                Re: Accesskontrol Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-22 13:24 +0200
                Re: Accesskontrol Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-23 11:46 +0200
  Re: Accesskontrol Erik Ginnerskov <egin@mail.dk> - 2020-08-09 17:39 +0200

csiph-web