r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Core] Discuss core issues

DideC
11-Feb-2011
[924x2]
I need to make some binary mask with some integer value like :
	var: random 99999999
	res: var and #{00ff0000}
OK. Find a solution.

to-integer #{00ff0000} give me an integer, so I will make some "constant" 
values from the binary I need and will make the AND between integers.
Ladislav
11-Feb-2011
[926x2]
>> to integer! binary: debase/base to-hex integer: 11 16
== 11
(not very convenient, I admit)
DideC
11-Feb-2011
[928]
LoL
Ladislav
11-Feb-2011
[929]
In R3 is is much more comfortable
Geomol
11-Feb-2011
[930]
Another option:

>> do http://www.fys.ku.dk/~niclasen/rebol/libs/bit.r
>> enhex 100 
== #{00000064}
GrahamC
12-Feb-2011
[931x4]
I want to block all of eastern europe ( sorry guys ) from my sites 
...
now vbulletin only allows blocking by ip address eg. 1.2.3.*
but the country blocks appear like this 

# Country: RUSSIAN FEDERATION
# ISO Code: RU
# Total Networks: 4,256
# Total Subnets:  35,139,848
2.60.0.0/255.252.0.0
2.92.0.0/255.252.0.0
31.28.0.0/255.255.224.0
46.0.0.0/255.255.0.0
46.3.0.0/255.255.0.0
is there some code I can use to transform the bottom into the top?
should I just simply replace the first occurence of a 0 on the left 
with a * ?
Andreas
12-Feb-2011
[935]
depends on the accuracy you need
GrahamC
12-Feb-2011
[936x2]
I don't need accuracy!
I just to block every spammer that lives in Eastern Europe
Andreas
12-Feb-2011
[938]
then replace every non-255 occurence with * :)
GrahamC
12-Feb-2011
[939]
eh?

2.60.0.0 => * ??
Andreas
12-Feb-2011
[940x2]
from the mask :)
this will match several million false positives too, but well :)
GrahamC
12-Feb-2011
[942x2]
vbulletin doesn't use masks
ok, so where there isn't a 255 in the mask, then replace the same 
point in the ip address with a *
Andreas
12-Feb-2011
[944x3]
2.60.0.0/255.252.0.0 is 2.60.0.0/22
2.60.*.* will match less than 2.60.0.0/22
2.*.*.* will match more than 2.60.0.0/22
GrahamC
12-Feb-2011
[947x2]
well, I think I would use 2.*
will that stop Putin posting?
Andreas
12-Feb-2011
[949]
blocking several gazillion non-eastern europe users as well :)
GrahamC
12-Feb-2011
[950x3]
collaterall damage
Rebol []

data: {# Country: AFGHANISTAN
# ISO Code: AF
# Total Networks: 22
# Total Subnets:  98,560
27.116.56.0 - 27.116.59.255
58.147.128.0 - 58.147.159.255
61.5.192.0 - 61.5.207.255
111.125.152.0 - 111.125.159.255
111.223.244.0 - 111.223.247.255
117.55.192.0 - 117.55.207.255
117.104.224.0 - 117.104.231.255
119.59.80.0 - 119.59.87.255
121.100.48.0 - 121.100.55.255
121.127.32.0 - 121.127.63.255
124.199.112.0 - 124.199.127.255
125.213.192.0 - 125.213.223.255
175.106.32.0 - 175.106.63.255
180.94.64.0 - 180.94.95.255
180.222.136.0 - 180.222.143.255
182.50.176.0 - 182.50.191.255
202.56.176.0 - 202.56.191.255
202.86.16.0 - 202.86.31.255
203.174.27.0 - 203.174.27.255
203.215.32.0 - 203.215.47.255
210.80.0.0 - 210.80.31.255
210.80.32.0 - 210.80.63.255
}

output: copy ""

foreach line parse/all data "^/" [
	if line [
		trim/head/tail line
		if not find/part line "#" 1 [
			ranges: parse/all line "-"
			from-ip: load trim/head/tail ranges/1
			to-ip: load trim/head/tail ranges/2
			; they diverge on the 3rd number
			from: from-ip/3
			to: to-ip/3
			for i from to 1 [

    append output rejoin ["" from-ip/1 "." from-ip/2 "." i ".*^/"]
			]
		]
	]
]

print output
gives ...

27.116.56.*
27.116.57.*
27.116.58.*
27.116.59.*
58.147.128.*
58.147.129.*
58.147.130.*
58.147.131.*
58.147.132.*
58.147.133.*
58.147.134.*
58.147.135.*

etc ..
Does that look okay?
Andreas
12-Feb-2011
[953x2]
looks ok :)
maybe someone has CIDR enumeration code already lying around :)
GrahamC
12-Feb-2011
[955x6]
8000 lines of IP ranges
going to be a big file!
oops .. 3Mb file of ip addresses to block
the VID editor just died on that
222,000 lines of addresses
let's hope vbulletin doesn't choke
Andreas
12-Feb-2011
[961]
-> ~Chit Chat
Brock
16-Feb-2011
[962x2]
Does anyone know why modifeid? and info? return a date without the 
time when accessing a file through ftp lon a windows ftp server? 
 Is this a limitation of windows, the ftp scheme, the ftp server, 
or the version of Rebol (I'm using the latest 2.7 - activated ODBC 
connection all dll access)?  Are there any known fixes to this - 
a quick google didn't find anything?
ecall there is a ftp update out there, does anyone know if that fixes 
this limiation?
Maxim
16-Feb-2011
[964]
it should return the time, I've got ftp synching routines which use 
info? and use date/time.   so I'd bet its a limitation on the server, 
or its using a non-standard date string in its LIST command.
Brock
16-Feb-2011
[965]
Okay, I'll see if our server admin can change something that will 
help.  Using Romano's FTP-Patch.r shows the date for files, but there 
is some code in place to get it to work from what I can tell.
BrianH
16-Feb-2011
[966]
You might also try connecting with the FTP server with a command 
line client like NcFTP and looking at the listings directly.
GrahamC
16-Feb-2011
[967x2]
or just modify the existing ftp client ... the formatting is a parse 
rule
ftp protocol ...
BrianH
16-Feb-2011
[969]
I meant, look at the listings directly, so you know what to look 
for when modifying that parse rule :)
Brock
16-Feb-2011
[970]
thanks for the input.  I'll see what I can do.
TomBon
22-Feb-2011
[971]
how to prevent binary data from spanning multiple lines?

this

 #{
    3A
    18
    92
    56
}

should be this

#{3A189256}

is this possible?
BrianH
22-Feb-2011
[972]
Afaik, binaries don't keep the info about how they were laid out 
on the page like blocks do. The whitespace won't be preserved when 
they are printed out. And there is no whitespace internally in the 
binary, just binary data.
TomBon
22-Feb-2011
[973]
according to the above example I would like to store the binary via 
a tcp.

any other possibility to transform the binary? while  using enbase 
I have 
also todo a dehex after retrieving. would like to avoid this.