[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip / qa] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: ipv6 canvas.png (86 KB, 1920x768)
86 KB
86 KB PNG
I abused the IPv6 address space by making every IP a pixel on a canvas and a color.
Run
ping -c 1 2a01:4f8:1c1e:85cd:XXXX:YYYY:RRGG:BBAA
to draw a pixel on the canvas. View the canvas here:
https://canvas.zipdox.net
>>
IP farm
>>
i don't get it
>>
>>100047855
Are you familiar with IPv6?
>>
ping: connect: Network is unreachable

thanks ipv6, you really made the internet more connected!
>>
>>100047855
OP wants you to dox yourself by giving him your you his IP
>>
>>100048055
ESL
>>
>>100048066
You are severely mentally ill.
>>
what's the point of alpha if you don't store it and force it to 255
>>
>>100047790
now draw her playing bad apple
>>
dumping cunny, hope you don't mind...
>>
bump
>>
>>100048107
SIR
>>
>6 seconds per 3000px wide line
>5550 lines
this is gonna take 10 hours to dump
>>
>>100051154
Are you the retard drawing the massive image with the Chinese characters?
>>
>>100051252
i'm not retarded
>>
File: file.png (123 KB, 1920x987)
123 KB
123 KB PNG
>>100047790
zooming kills the website
cool idea albeit
>>
File: file.png (17 KB, 754x206)
17 KB
17 KB PNG
>>100047790
Do you just send the entire canvas for redraws?
>>
>>100051375
wow that's fucking retarded
>>
>>100047855
>>100048055
>>100048066
>>100048107
you're fucking retarded holy shit
>>
>>100051502
No, what's retarded is that the data is purged from the browser just by going slightly out of the window bounds.
Deltas are already being sent through the websocket.
>>
>>100051502
>that would require constant communication between clients and server
it's called a websocket
>it would be somewhat easy to DDOS the server with calculations going for every single client
rate limit it and send only whatever is in the screen

anon have you ever fucking programmed in your life
>>
>>100051556
Not webdev, I am just making shit up from what I know about qt and gtk.
>>
>>100051556
You don't know what you're talking about. Quiet.
>>
I don't want to get doxxed. I refuse to access your website. Yes I'm from India.
>>
File: file.png (24 KB, 748x149)
24 KB
24 KB PNG
what am i doing wrong?
>>
>>100051754
windows and/or not having an ipv6 address yourself
>>
File: v6_adoption.png (408 KB, 1232x739)
408 KB
408 KB PNG
>>100051754
living in wrong country
>>
File: druk.jpg (128 KB, 1155x1155)
128 KB
128 KB JPG
Neat
>>
>>100047790
You should monitor it while it's up. You just know that some fucker will try to put pizza on it.
>>
>>100051375
No, look at the URL, it's /tile/X/Y.
>>
my router died or crashed from flooding with icmp packets
>>
File: file.png (30 KB, 896x474)
30 KB
30 KB PNG
>>100051793
is it possible to add an ipv6 here?
>>
>>100052051
Yes, if you want your internet connection to stop working.
>>
>>100051754
https://www.majorgeeks.com/content/page/how_to_enable_or_disable_ipv6_in_windows.html
https://test-ipv6.com/
>>
>>100048055
What could he do with it?
>>
can you make it so it remembers the camera coordinates between refresh, the site is badly lagging it's a pain
>>
>>100052455
I never wrote a movable canvas before so I didn't really know how to approach it. I'll write the coord storage down.
>>
>>100052611
Also performance is atrocious because you're forcing draw commands on every pixel set, batch them so they're all drawn only on requestAnimationFrame, your socket message handler shouldn't trigger draws you triple fucking retard
>>
>>100052681
I know, I'm trying to think of a better way to do it.
>>
>>100052696
>each tile a separate offscreen canvas 2d drawing onto a bigger canvas 2d
holy mother of retardation
>>
how did people even get entire pictures on it
>>
>>100052742
Enjoy:
from os import system
from sys import argv
#The file should be a raw RGB888 file.
file=open(argv[5], "rb")
frame=file.read()
width=int(argv[3])
height=int(argv[4])
x=int(argv[1])
y=int(argv[2])
for i in range(height):
for j in range(width):
print("ping -c 1 2a01:4f8:1c1e:85cd:"+hex(j+x)[2:].zfill(4)+":"+hex(i+y)[2:].zfill(4)+":"+hex(frame[3*(i*width+j)])[2:].zfill(2)+hex(frame[3*(i*width+j)+1])[2:].zfill(2)+":"+hex(frame[3*(i*width+j)+2])[2:].zfill(2)+"ff")
>>
>>100052753
Fuck
from os import system
from sys import argv
#The file should be a raw RGB888 file.
file=open(argv[5], "rb")
frame=file.read()
width=int(argv[3])
height=int(argv[4])
x=int(argv[1])
y=int(argv[2])
for i in range(height):
for j in range(width):
system("ping -c 1 2a01:4f8:1c1e:85cd:"+hex(j+x)[2:].zfill(4)+":"+hex(i+y)[2:].zfill(4)+":"+hex(frame[3*(i*width+j)])[2:].zfill(2)+hex(frame[3*(i*width+j)+1])[2:].zfill(2)+":"+hex(frame[3*(i*width+j)+2])[2:].zfill(2)+"ff")


Use this to convert your pictures:
ffmpeg -i input.png -f rawvideo -pix_fmt rgb24 output.raw
>>
>>100052777
>system("ping...")
ngmi
>>
>>100052926
Yeah, Popen is faster, I know.
>>
>>100052753
>>100052777
Is that the best you can do? I bet you can get ChudGPT to shit out C code for sending raw packets.
>>
>>100053079
>Popen
Sirs...
>>
wtf she has a bepis
>>
File: 1710817134160868.png (256 KB, 529x519)
256 KB
256 KB PNG
>>100051358
>Noa
>naked
Oh my god.
>>
>>100047790
KEK

great site OP
>>
hypothetically, considering there are 256x256 tiles of 256x256 pixels, and the storage is 24bpp (maybe even 32bpp?) what would happen if someone (not me :^) ) drew one pixel in the middle of every tile
>>
is that ebussi
>>
>>100053419
The canvas is stored as one massive 12.9GB file mmap'd into memory. Not much would happen really.
>>
anon really wasn't joking around when he said he would paint cunny
>>
>>100053761
That's just by some jap artist.
>>
cool site
what does the network traffic look like?
>>
What is that qr code?
>>
please optimize the renderer, it's absolute dogshit the likes i've never seen before, it's like sisyphus in code shape
>>
my ISP doesn't support ipv6 and probably never will
>>
Why are there so many footfags here suddenly?
>>
>>100055147
>suddenly
>>
its dead
>>
Jesus christ was this site made by a poojeet?
>>
File: 1703426242480724.png (445 KB, 728x655)
445 KB
445 KB PNG
>>100047790
Died while I was using >>100052777 script to draw scott tibbs
I don't code, so I was trying to get GPT to do a C/C++ version with parallelism.
no success
>>
What is Chito doing with cancerfrogs?
>>
>>100055428
Fuck it, just managed to
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream> // for std::ostringstream
#include <iomanip>
using namespace std;

void pingCell(int x, int y, int width, int height, const unsigned char* frame) {
for (int i = 0; i < height; ++i) {
for (int j = 0; j < width; ++j) {
ostringstream command;
// Construct the ping command for each cell
command << "ping -c 1 2a01:4f8:1c1e:85cd:"
<< hex << uppercase << setw(4) << setfill('0') << (j + x) << ":"
<< hex << uppercase << setw(4) << setfill('0') << (i + y)
<< ":" << setw(2) << setfill('0') << static_cast<int>(frame[3 * (i * width + j)])
<< setw(2) << setfill('0') << static_cast<int>(frame[3 * (i * width + j) + 1]) << ":"
<< setw(2) << setfill('0') << static_cast<int>(frame[3 * (i * width + j) + 2]) << "ff";
// Execute the ping command
system(command.str().c_str());
}
}
}

int main(int argc, char* argv[]) {
if (argc < 6) {
cerr << "Usage: " << argv[0] << " x y width height filename" << endl;
return 1;
}

int x = atoi(argv[1]);
int y = atoi(argv[2]);
int width = atoi(argv[3]);
int height = atoi(argv[4]);
const char* filename = argv[5];

FILE* file = fopen(filename, "rb");
if (!file) {
cerr << "Error opening file: " << filename << endl;
return 1;
}

unsigned char* frame = new unsigned char[3 * width * height];
fread(frame, sizeof(unsigned char), 3 * width * height, file);
fclose(file);

pingCell(x, y, width, height, frame);

delete[] frame;

return 0;
}

I know this can be done better (like using multiple workers to ping faster). But again, I don't code.
>>
I can't get my script to work

I don't know how you get yours to send the images so quickly, are you flooding it?

I'm giving up and going to bed
>>
>>100055562
keep trying anon. I want to know what you have to show us
>>
reminds me of https://www.youtube.com/watch?v=JcJSW7Rprio
>>
How exactly do you record the ping packets? A naive way might be just using pcap and parsing the output stream or something.
>>
'''
from PIL import Image
from concurrent.futures import ThreadPoolExecutor
from scapy.all import *

def send_packet(target_ip):
packet = IPv6(dst=target_ip)/ICMPv6EchoRequest()
send(packet)


def process_image(image_path, max_threads=1000):

img = Image.open(image_path)
img = img.convert('RGBA')

width, height = img.size

with ThreadPoolExecutor(max_workers=max_threads) as executor:
for x in range(width):
for y in range(height):
r, g, b, a = img.getpixel((x, y))
target_ip = f"2a01:4f8:1c1e:85cd:{x+0:04X}:{y+0:04X}:{r:02X}{g:02X}:{b:02X}{a:02X}"
executor.submit(send_packet, target_ip)

process_image("fuckyou.png")
'''
>>
>>100055645
from PIL import Image
from concurrent.futures import ThreadPoolExecutor
from scapy.all import *

def send_packet(target_ip):
packet = IPv6(dst=target_ip)/ICMPv6EchoRequest()
send(packet)


def process_image(image_path, max_threads=1000):

img = Image.open(image_path)
img = img.convert('RGBA')

width, height = img.size

with ThreadPoolExecutor(max_workers=max_threads) as executor:
for x in range(width):
for y in range(height):
r, g, b, a = img.getpixel((x, y))
target_ip = f"2a01:4f8:1c1e:85cd:{x+0:04X}:{y+0:04X}:{r:02X}{g:02X}:{b:02X}{a:02X}"
executor.submit(send_packet, target_ip)

process_image("fuckyou.png")


forgot how the codeblock worked here
>>
>>100055590
if u snoop around they have it on gitlab
>>
based /pol/ schizo covering up that disgusting cartoon
>>
>>100055376
I disable system ICMPv6 responses and made it respond in my code, to improve echo response accuracy.
>>
>python
I thought this was /g/ not scratch mit edu
>>
>>100055746
great so now I have to ignore timeouts and assume shit has properly been received, nice idea
could have spent that time writing a non-garbo renderer instead, faggot
>>
>>100055763
Found a problem. It's not sending the replies from the right address.
>>
File: 1712959661036545.jpg (88 KB, 941x908)
88 KB
88 KB JPG
Very cool. Fun idea.
>>
How is the futaloli faggot script so fast? It's so fucking quick
>>
>>100056295
not quick enough
>>
>>100047915
>Be a cuckold without IPv6
>this is OP's network's fault and not your own and your substandard ISP / peering network
>>
>>100056295
that's a boy
>>
>>100056355
I'm not hentroon enjoyer, therefore Idc.
>>
>>100055755
Given sending icmp packets is privileged by default, shelling out with python is basically perfectly normal.
>>
>>100056370
>i'm not one of them
>uses terms exclusive to them instead of the normal term "boy"
yeah right, 41% yourself, closet faggot
>>
>>100056434
Where tf futaloli is exclusive.
Futaloli, boy, glowie, whatever, doesn't change the fact that this faggot script is fast
>>
>the only intact and largest image is an naked boy
confirmed that every ipv6 faggot is a boy molesting fruit
>>
>>100056478
The kalis are also intact tho.
This shows that every ipv6 faggot is also a sar
>>
my script is just typescript, it's just fast because I'm running it from a VPS on the same continent as the OP's server, same code on my home machine is 6 times slower, even though I technically have a better fiber bandwidth (though router's my ISP's, and is quite shit)

Could probably get much faster speeds buying a VPS in the same datacenter as OP, they seem to be using hetzner, in germany

I think location is more important than the actual code.
Unless you're a retard spawning system commands.
>>
>websocket closed
>404
>502
when will it stop
>>
>>100056565
makes sense. I'm far away from op (Brazil, hue hue hue, thurd world) so it takes a while until I finish the images
>>
packet loss visualizer
>>
File: 1689602627610664.png (166 KB, 780x331)
166 KB
166 KB PNG
Is it just my impression or the top is inscreasing?
Both the Kali and the other image have started at y=0 as well I remember, now there's a big gap between both images and the border
>>
>>100056591
When I figure out how to calculate an ICMPv6 checksum.
>>
>>100051358
>albeit
It is illegal to use this word the way that you did, and at the end of a sentence no less. Please take AT LEAST 100 more hours of ESL classes before posting here again. Thank you in advance for your compliance.
>>
>>100057359
What's your opinion in the progress of the canvas, OP?
>>
>>100057359
Yeah idk what the fuck is with the checksum shit
I'm trying to use raw sockets to send data and the checksum calculation is not explained in nearly enough detail. I'm like 1 off somehow in the checksum calculation, but it moves up/down slightly when I modify the data.
>>
That's it anons, I'm going to sleep now, sars.
I wanted to say that I had fun, even with this shit socket disconnecting everytime. Thanks very much everyone who participated in OP's IP farm.
>>
>that 3d faggot that looks like he's disintegrating into dust
top kek
>>
something tells me these black boxes aren't actually someone, and are most likely the server dying.
>>
>>100047790
>>100047871
okay i dont get it either
do you own 2a01:4f8:1c1e:85cd:*? do all those ip belong to the same machine? how does this work
>>
>>100057359
>>100057567
I was just using a 16 bit accumulator somewhere I should have been using a 32 bit accumulator
site's dead now though :(
>>
#include <opencv2/opencv.hpp>
#include <boost/asio.hpp>
#include <boost/asio/ip/icmp.hpp>
#include <iostream>
#include <vector>
#include <iomanip>
#include <sstream>
#include <cstring>

using namespace cv;
using namespace boost::asio;
using namespace std;

string formatIPv6Address(const string& base, int x, int y, int r, int g, int b) {
stringstream ss;
ss << hex << base << ":"
<< setw(4) << setfill('0') << x << ":"
<< setw(4) << setfill('0') << y << ":"
<< setw(2) << setfill('0') << r
<< setw(2) << setfill('0') << g << ":"
<< setw(2) << setfill('0') << b << "ff";

return ss.str();
}

struct icmpv6_header {
uint8_t type;
uint8_t code;
uint16_t checksum;
uint16_t identifier;
uint16_t sequence_number;
};

void send_icmp_echo_request(io_context& io_context, const string& target_address) {
static ip::icmp::socket socket(io_context, ip::icmp::v6());
try {
if (!socket.is_open()) {
socket.open(ip::icmp::v6());
}
socket.set_option(ip::unicast::hops(128));

ip::icmp::resolver resolver(io_context);
ip::icmp::endpoint destination = *resolver.resolve(ip::icmp::v6(), target_address, "").begin();

icmpv6_header echo_req{};
echo_req.type = 128; // Echo Request
echo_req.code = 0;
echo_req.checksum = 0;
echo_req.identifier = htons(12345);
echo_req.sequence_number = htons(1);

char send_buf[sizeof(echo_req)];
std::memcpy(send_buf, &echo_req, sizeof(echo_req));

socket.send_to(buffer(send_buf, sizeof(send_buf)), destination);
}
catch (const std::exception& e) {
cerr << "Error sending ICMPv6 echo request: " << e.what() << endl;
socket.close();
throw;
}
}
>>
>>100058235
int main(int argc, char** argv) {
if (argc != 5) {
cout << "Usage: ./image_packet_sender <image_path> <ipv6_base> <offset_x> <offset_y>" << endl;
return 1;
}

string imagePath = argv[1];
string ipv6Base = argv[2];
int offsetX = stoi(argv[3]);
int offsetY = stoi(argv[4]);

// Load the image
cout << "Attempting to load image from: " << imagePath << endl;
Mat image = imread(imagePath, IMREAD_COLOR);
if (image.empty()) {
cout << "Could not open or find the image" << endl;
return -1;
}

printf("Image size: %d x %d\n", image.cols, image.rows);

io_context io_context;

// Iterate over each pixel
for (int y = 0; y < image.rows; y++) {
for (int x = 0; x < image.cols; x++) {
Vec3b color = image.at<Vec3b>(Point(x, y));
int red = (int)color[2];
int green = (int)color[1];
int blue = (int)color[0];


string formattedAddress = formatIPv6Address(ipv6Base, x + offsetX, y + offsetY, red, green, blue);

cout << "Sending to address: " << formattedAddress << endl;
send_icmp_echo_request(io_context, formattedAddress);
}
}

cout << "Done." << endl;

return 0;
}

Very fast, but maybe too fast. lots of dropped packets but I am halfway around the world.
>>
>>100051754
>>100051806
https://tunnelbroker.net can fix that for you
>>
File: 1708985116287171.jpg (34 KB, 410x338)
34 KB
34 KB JPG
>>100047790
So we can send cunny unnoticed now?
>>
what a slow piece of shit site
>>
>>100047790
Fuck (You)! Also, why (You) need my IP ???
>>
>>100047790
>broken for mobilefags
Reeeee fix your shit OP
>>
I hope anon manages to fuck his sister one day.
>>
>>100047790
sorry, I have IPv6 disabled for my network, I only work with static ipv4 non cgnat.
>>
>>100055796
dont bother sending replies please; who cares, fire and forget
>>
>>100052287
ipv6 addresses are unique. It is unique as your finger print and it doesn't change even if you reset your router. You're fucked if you gave him your ipv6.
>>
>>100060508
You got a good laugh out of me
>>
anime DoS
>>
>tranny DoS
Way to ruin it.
>>
>>100058072
It's a /64 subnet, so yeah, he "owns" all of those IPs. Pretty standard even for cheap vHosts to give you such a large subnet.
>>
>>100058072
The designers of IPv6 were retards who thought every machine on a LAN should have a unique public IP. So the common practice is to assign entire subnets to customers instead of a single IP.
>>
OP Plz ipban the trap faggots
>>
>>100061627
OP please keep them I love the delicious cocks
>>
>4chan of the 00s and early 10s: goatse and CP
>4chan of the 20s: trump and tranny porn
>>
Is the packet loss bad today or something? Same code as yesterday but eveything I try to draw just looks like a bunch of black specks
>>
File: 1700935190773994.png (46 KB, 339x285)
46 KB
46 KB PNG
>>100062074
packet loss just dropped to 0 when you posted that, lel
>>
Someone erase that not-valid "person" already.
>>
>>100062109
>>100062074
but yeah, it was unbearable just a few moments ago
>>
File: Lorie - Attitudes (2004).jpg (443 KB, 1400x1400)
443 KB
443 KB JPG
>>100053623
>12.9GB file mmap'd into memory
Does it mean that we are currently killing your SSD?
>>100062119
Looks like it's gone back to being unbearable. I have a hard time getting Lorie on the canvas.
>>
>>100062239
Sorry for printing Kali over Lorie yesterday. I tried putting her next to Lorie without calculating the dimensions (I'm lazy) and messed up.
>>
why don't you guys draw your shit somewhere else, we have a 64k*64k canvas ffs
what's so funny about defacing other's images, or are you really that envious people like things at all that you have to just deface with noise that's as sparse and nuanced as your personality, you have really nothing to show?
>>
>>100062311
No problem, dude, I overwrote incestanon's message at some point so I'm guilty too. Also, are you using my shitty Python script or the C++ thing that someone else posted?
>>
>>100062343
go back >>>/r/eddit
>>
>>100062376
lol u mad
>>
>>100062369
The C++ script, that was me who sent.
I'm outside home now, but I'll send you my new one when I arrive home (Doesn't change much in code, but parallelism makes it way faster)
>>
>>100048833
doing
>>
>>100047790
>zipdox.net
>>100047821
I ain't clicking that shit
>>
who's the pornstar behind trump?
>>
>>100060508
I hope he's trolling and not actually this fucking retarded.
>>
>>100062522
Just for your information, said pornstar has a dick. I think it's Taftaj.
>>
File: 1712822177546584.png (380 KB, 640x833)
380 KB
380 KB PNG
>>100062343
It's the survival of the mighty.
>>
File: file.jpg (56 KB, 1080x1243)
56 KB
56 KB JPG
noise chads wwa
https://pastebin.com/k1bExqt2
>>
>>100057406
I do it on purpose to trigger people like you thoughever
>>
>bad apple at 0.5 fps
Is this the power of python? Or is it the server's or website's fault?
>>
>>100062851
It's both
>>
>>100062851
Looks like the power of autism.
>>
ffs op just replace setInterval with requestAnimationFrame, it's not that hard holy shit.
>>
OP compute mipmaps of the image so you can zoom out without requesting the full image
>>
>>100053623
>13gb
why do you need so much for a raw image?
>>
thankfully, variables aren't in closures so I can just do

requestAnimationFrame(function aa(){
for(tileName in drawQueue){
const tile = storedTiles[tileName];
if(!tile) continue;
const queuedTile = drawQueue[tileName];

for(let drawCommand of queuedTile){
const xPixel = drawCommand[1];
const yPixel = drawCommand[3];
tile.data.data.set(drawCommand.slice(4), (yPixel * 256 + xPixel) * 4);
}

const tileX = queuedTile[0][0];
const tileY = queuedTile[0][2];
tile.ctx.putImageData(tile.data, 0, 0);
drawTile(tileX, tileY);
}
drawQueue = {};
requestAnimationFrame(aa);
});


in the console and it refreshes decently
>>
dumping more cunny, bottom right of nahida
>>
>>100063263
Thanks very much, anon. I'll need those
>>
>>100063195
The canvas is 65536x65536
>>
Okay so making my own ICMP responses was too difficult. Instead I made the socket more reliable by reading in a while loop in the callback until it returns -1. Also set up requestAnimationFrame.
>>
>>100057406
Eventhoughbeit
>>
>>100064808
>ICMP
>difficult
>>
>>100064808
>Also set up requestAnimationFrame.
Good, now you can go on to using abort so my browser/ram/bandwidth doesn't get raped when i'm trying to scroll to my region because you still haven't implemented persistent for the screen position between refreshes, which is the most likely reason we're stuck in the top left corner of this canvas
https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort
>>
>you can scroll and zoom
oh
>>
>>100064904
Calculating the checksum is a PITA. I tried several times but it's always off by a bit. Granted it was like 5AM and I was exhausted. If the need arises I might try again.
>>
>>100065035
You didn't know? Holy fucking retard.

Also can you guys stop warring in the top left corner and start moving outward?
>>
>>100065068
No scrollbar, no indication that it's possible.
How do I zoom lower than 1x?
>>
>>100065068
>stop warring in the top left corner and start moving outward?
no we can't, read >>100064967
scrolling consumes a ton of bandwidth, even for black tiles and the requests aren't aborted when the tiles go offscreen so the later tiles take even longer to load, fix your shit
Even if you go outward, one little refresh and you have to make your way there again.
2/10
>>
>>100065087
Currently not possible (disable it cause it makes your browser shit itself). I'll try to make moving use requestAnimationFrame in a bit.
>>
>>100065119
Also it's not possible to see where you are intuitively. Holy shit if the full thing is really 64x64k big.
>>
>>100063176
Also this anon is right. It's the only way to zoom out and see the whole thing without requiring gigabytes of bandwidth.
>>
>>100052455
>>100064967
Implemented position saving. Clear your browser cache and it should work.
>>
Are the noisy tiles a bug?
>>
>>100065393
no its retards who are spamming it intentionally and also the result of packet loss
>>
I just confirmed the faggot drawing the genshin loli kid with the wiener is in fact French (very unsurprising).
>>
>>100065639
The wiener was a disappointment. Nationalities of the other loli posters?
Also the canvas is black now.
>>
>>100065648
>Also the canvas is black now.
Nevermind, saved position in a black area.
>>
>>100065639
>dox people
very unsurprising from zipDOX
>>
>>100064808
I can help, I posted code that works correctly with raw sockets >>100062719 . You probably need to use a 32 bit accumulator and do a final pass to roll the top bits back into the lower 16. Ones complement sum works differently than a normal sum, if you're only off by a bit that's probably what's happening, or at least was the issue in my case.
>>
>>100065648
>Nationalities of the other loli posters?
all me
>>
Dumb frog at 9000,12000.
>>
>>100061716
i love girl dicks too
>>
drawing a literal satan at 6666,6666

>>100065908
dick = boy
you like boys
>>
>>100065639
rude thing to do when i bumped your thread multiple times when it was about to die, and drew a large provocative image to bait activity
>>
>>100066106
That's true, I spent at least an hour censoring that.
I found that Kali is beautiful elsewhere instead of censoring a lolipenis
>>
been messing with it since last night
it's kinda shit that spamming hard enough causes packets to drop, since it incentivizes spamming until it's unusable
you can of course send more like the other guy, and 'win' but that ends up making it worse
so people end up in territory wars and crash the site
one anon last night was sending his image over and over non stop, you could tell anyone putting pixels in that space was instantly wiped away and the server was unusable, but when he stopped everything was fine

also what's the issue? cpu? getting 1gb/s of pings? complete mystery?
>>
Zip can you apply compression when loading not downloaded chunks and zoomed out a lot?
>>100066001
no, im not talking about the loli
>>100065666
self snitched lol

if you wanna zoom out to see if anons put something off screen, paste it in the console.
document.onwheel = function(evt){ const zM = 1 + -evt.deltaY / 1000; let nS = scale * zM; const cX = evt.clientX / scale + x; const cY = evt.clientY / scale + y; const nCX = evt.clientX / nS + x; const nCY = evt.clientY / nS + y; x += cX - nCX; y += cY - nCY; normalizeCoords(); scale = nS; setZoomLabel(); updateTiles(); redrawTiles(); updateCoords();}
>>
File: 1682275658009142.png (77 KB, 746x588)
77 KB
77 KB PNG
>>100066543
>also what's the issue? cpu?
meme code that's compiled without optimizations doing meme casts and not understanding that if you have 256 pixel wide tiles and 256 tiles then separating the two bytes is the same as directly using the short word as a global coordinate
>>
I think my ISP is disconnecting me for sending too much ICMP traffic lol. Some automated system probably thinks I'm part of a botnet in a DDoS.
>>
File: 1702509175849358.png (162 KB, 320x400)
162 KB
162 KB PNG
>>100066703
OP...
>>
>>100066543
From testing on my end, you're not terribly incentivized to spam it as hard as you can, although I can hit my max upload of 40Mbit, doing so results in most of the packets being dropped somewhere between me and the server, throttling to ~7Mbit has much better delivery rates.
>>
>>100066703
I can't imagine that's a bottleneck.
>>
>>100067227
when there is spam, doing even one pixel at a time, they show up as noise since most of them were dropped somewhere
if it's dying enough, there are long blank segments
>>
>>100066703
Using double for alpha compositing is overkill when you're going back to 8 bit, should use float or just get rid of alpha imo
>>
>>100067327
Well the bottleneck is most obviously the random access on an mmapped file.
And that it would become worse if he implemented mipmaps on top of that as each pixel set could pull 10 different pages into memory instead of one.

I don't know what he's working on atm, but abortable fetch requests look more feasible currently, I believe mipmaps would bring their lot of trouble.

>>100067442
>get rid of alpha
yeah this, nobody uses this, you have to deal with spammer spamming random noise so you have to fetch the tile state all the time anyway, if you want color mixing just compute it client side
>>
>>100067478
>Well the bottleneck is most obviously the random access on an mmapped file.
Is it? The whole thing should fit into your server's RAM. RAM bandwidth is fast.
>>
>>100067516
It's 12GB, 16 with mipmap, those aren't exactly cheap... well, actually I think oracle can give you a 24gb ram arm server for free.

But I think OP most likely has the cheapest hetzner option, with 4 gigs
>>
>>100067578
My desktop machine has 32GB and I feel like ti's too little. If it's only 3-4GB you get awful worst cases, sure. Maybe he should just have made the canvas smaller.
>>
Before mipmaps, he should send downsampled images compressed with jpg while scrolling.
>>
I scrolled all the way to 65k/65k and was disappointed no one put anything there.

>>100047790
OP make it easier to scroll faster or give us a way to move directly to a coordinate.
>>
File: 1617743658443.jpg (9 KB, 261x223)
9 KB
9 KB JPG
>>100061331
kek
and here i thought its worst feature was the hard to remember addresses
>>
>>100067872
zooming out to see the whole canvas would solve pretty much everything
>>
>>100052696
also allow zoom out to less than 1x. hard to navigate that bignigger space.
i hope someone will write some stable diffusion bot to randomly inpaint parts of the picture, or multiple bots fighting each, and we'll be able to watch it transform live all the time.
how long do you plan on keeping this running?
>>
>>100068161
>allow zoom out to less than 1x. hard to navigate that bignigger space.
try >>100066563 then realize how big a mistake it is to want this when there's not proper optimization
>>
>>100063195
do the math, retard
>>
>>100067516
Even if it's fully in RAM you basically pay a cache miss on every access. You need some swizzling to avoid this penalty. E.g. if cache line size is 64 bytes and 3 bytes per pixel, you can store 21 pixels in a single cache line. Ideally, cache lines would correspond to some square sub region of the image, but 21 isn't a perfect square so you can do 3x7 (wastes 1 byte per 21 pixels) or 5x4 (wastes 4 bytes per 20 pixels) size tiles. Multiple writes/reads would be more likely to hit the same cache line. Really, you don't want to waste bytes so you need some packing that divides 512 bits better, e.g. RGB565, then you can have perfectly dividing 4x8 tiles, or RGB332 which gets you 8x8 tiles.
>>
>>100065068
we can't zoom out. so we can't move away from top-left at comfortable speed and knowing where we're going.
>>
>>100068237
Cache refilling is pretty fast compared to pushing packets through the network stack and parsing them. Tiling the image may help, because people likely do localized accesses when writing to images, but even then they tend to write scanline by scanline so the penalty isn't that bad.
>>
>>100065639
please ban france
>>
>>100068299
Idk how well multithreaded OP's server is, but it shouldn't spend much time waiting on the network, should just be epolling for most of it. I was looking at how GMainLoop works and it might not be great, seems like they're taking locks in some places which isn't great if you want to do multithreaded dispatch (removing alpha makes this easier since you don't need to read and blend, can just blindly write and you don't really care about the image view being coherent if you don't blend). His server might need some tweaking of how much buffering the kernel is doing, but I'm not familiar with that stuff. io_uring or using an eBPF might be faster, but it might not matter if OP is saturating his download/upload.
>>
nahida won
i won
>>100068350
>nooooooo i have inferior technology and can't compete with baguette superiority, it's unfair!
>>
>>100068392
>DMA from ethernet MAC to RAM
>waking up the CPU
>walking the MAC buffer
>handling the cache misses and transfering the packet data to the CPU's cache
>picking out packets
>parsing the packet headers
>dispatching them to the network subsystems
>waking up the user process waiting for the raw buffer
>copying it to userspace (more cache misses)
>parsing the packet again
There's probably a lot going on.
>>
>bad apple is already running in the corner
basde
>>
>no keyboard controls
This is probably why I didn't get that you can scroll and zoom.
>>
>>100066703
The image is not stored line by line, which you'd know if you read the rest of code. It's stored tile by tile, so facilitate sending to the clients.
>>
>someone trying to censor the genshin dick
Thanks, I don't want to turn gay.
>>
>>100047821
>he isn't under vpns hosted in kuwait and afghanistan
Sounds like a (You) problem.
>>
>>100067872
I might add a teleport option. Until then you can just open the console and set the x and y variables manually.
>>
>>100068392
>Idk how well multithreaded OP's server is
Not. Except for NGINX, the entire thing runs in a single event loop. I wrote this in like 2 days.
>>
File: become gay beam.png (418 KB, 655x866)
418 KB
418 KB PNG
>>100068881
thanks for telling me :^)
>>
>>100068953
enable gz compression in nginx for the love of god
>>
>>100057406
this aint it, you could of said something different
>>
>anons shit optimized censor
>chads lightning fast cunny dick(feminine)
give up bro, boy cunny won
>>
>>100068956
https://www.youtube.com/watch?v=ytbmvxFGR5s
>>
Remove alpha, change bit depth to 16 bit, you save half the bandwidth and memory.
>>
>>100069401
alpha isn't stored, it's only used for compositing so it's only 33% savings
>>
>>100051358
Where is the Noa? Can't find it.
>>
>>100069791
you have to make her yourself
>>
>>100069791
I guess she got overwritten early on.
>>
adding a noa at 7455 7995
>>
>>100069052
the cunny fucker has geographic advantage, plus is handling retransmission. My C code is much faster but like 30 percent of my packets even make it because it's too fast.
>>
>>100066745
Didn't they used to use ping floods to DDoS servers? I recall /b/ trying this a bunch of times.
>>
>>100069401
The image isn't stored in RAM, it's mapped to disk. It doesn't even consume 200MB of RAM.
>>
>>100070128
Do you know how mmap actually works?
>>
>>100070128
>It doesn't even consume 200MB of RAM.
lol do you have vm.swappiness set to 90 or something
>>
>>100062484
Here
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream> // for std::ostringstream
#include <iomanip>
#include <thread>
#include <vector>
using namespace std;

void pingCell(int x, int y, int width, int height, const unsigned char* frame, int xi) {
for (int i = xi; i < height; ++i) {
for (int j = 0; j < width; ++j) {
// Create a new ostringstream for each ping command
ostringstream command;
// Construct the ping command for each cell
command << "ping -q -c 1 2a01:4f8:1c1e:85cd:"
<< hex << uppercase << setw(4) << setfill('0') << (j + x) << ":"
<< hex << uppercase << setw(4) << setfill('0') << (i + y)
<< ":" << setw(2) << setfill('0') << static_cast<int>(frame[3 * (i * width + j)])
<< setw(2) << setfill('0') << static_cast<int>(frame[3 * (i * width + j) + 1]) << ":"
<< setw(2) << setfill('0') << static_cast<int>(frame[3 * (i * width + j) + 2]) << "ff";
// Execute the ping command in a separate thread
thread pingThread([commandStr = command.str()]() {
system(commandStr.c_str());
});
pingThread.detach(); // Detach the thread to run independently
}
}
}

int main(int argc, char* argv[]) {
if (argc < 6) {
cerr << "Usage: " << argv[0] << " x y width height filename xoff" << endl;
return 1;
}

1/2
>>
>>100070185

int x = atoi(argv[1]);
int y = atoi(argv[2]);
int width = atoi(argv[3]);
int height = atoi(argv[4]);
const char* filename = argv[5];
int xi;
if (!argv[6]){
xi = 0;
} else {
xi = atoi(argv[6]);
}

FILE* file = fopen(filename, "rb");
if (!file) {
cerr << "Error opening file: " << filename << endl;
return 1;
}

unsigned char* frame = new unsigned char[3 * width * height];
fread(frame, sizeof(unsigned char), 3 * width * height, file);
fclose(file);

pingCell(x, y, width, height, frame, xi);

delete[] frame;

return 0;
}

Isn't better than >>100058235 >>100058246 tho
>>
To optimally draw pixels you probably need to figure out the maximum rate at which you can send pings without packet drops.
>>
Also, does the ping utility even send a minimum ping packet size? Since the ping payload isn't used, it would be better to reduce the packet size.
>>
>>100070203
yours may be better, mine doesnt retransmit, which means that it is at the mercy of packet lose, I believe that calling the ping command is good for this, but much slower. I will try to refactor to include some kind of retransmit.
>>
>>100070284
my code in
>>100058235
does not include a payload and the packet sizes are something like 30 to 50 percent less large.
>>
File: file.png (31 KB, 430x383)
31 KB
31 KB PNG
>Pixel coordinates (hexadecimal)
FUCK. No wonder I've been shitting pixel vomit onto the canvas.
>>
>>100070047
cope
>geographic advantage
kek, it'd only take a few cents to rent out a vps for a few hours in the same datacenter as OP's vps
>handling retransmission
maybe using c wasn't that smart a choice, huh

>>100070265
In my testing, pinging without waiting for a reply was consistently slower than waiting for replies, even taking into account retransmission and high transmission rates.
Causing congestion is more harmful than raw throughput.
The loss isn't caused by the inherent "unreliable" nature of the protocol, but because you're congesting your network path.
>>
>>100070459
>The loss isn't caused by the inherent "unreliable" nature of the protocol, but because you're congesting your network path.
Same thing. Routers and switches can't possibly buffer all traffic until it's been relayed.
>>
>>100070284
That's true. I thought about that, but I was phoneposting at college at the moment.
>>100070265
Probably. I just don't know how to do it. (The code was mostly done through ChatGPT.) The furthest I can manage to think is setting a std::this_thread::sleep_for(std::chrono::nanoseconds(time))
and I'm not sure if it's the most efficient way.
>>100070398
Thanks (even tho it's just chatgpt code), the ping command is good for retransmitting, but I was trying to send the packets through the code itself because of the speed, like you did.
>>
How can we export the whole canvas to jpg?
>>
>>100070638
idk how you would download the whole canvas. but here is
ffmpeg -f rawvideo -pixel_format rgba -video_size (width)x(height) -i input.raw output.png
>>
>>100052753
>>100052777
>>100055520
>>100070185
>>100070203
You guys are writing in C/C++ only to call the ping command rather than sending an ICMP packet directly. Step up your game.
>>
Waiting for that Noa pic to complete.
>>
>>100047790
Very nice.
This is definitely the coolest thing I saw this year on /g/. Thanks OP.
Do you mind sharing the code for the backend?
>>
>>100070824

https://gitlab.com/zipdox/ipv6-canvas
>>
make so you can refetch/refresh a tile by double clicking, enough of having desyncs and having to refresh the whole page or scroll around and reload fucking everything
>>
File: 1711820574366650.png (98 KB, 400x300)
98 KB
98 KB PNG
>>100070753
idk how to make a ICMP packet sender with retransmission, OP.
>>
>>100070832
cool shit you're the same guy maintaining the librecord
though i still think it is an useless effort just because the whole discord is a shitshow
>>
>>100070874
https://datatracker.ietf.org/doc/html/rfc792
I love RFC. Ignore that this one is for IPV4 not IPv6.
>>
>>100071015
OK bothered with a second search.
https://datatracker.ietf.org/doc/html/rfc4443
Trivial header.
>>
File: 1695439565124696.gif (1.29 MB, 498x464)
1.29 MB
1.29 MB GIF
>>100070002
>>
>>100070002
4K noa complete

const obs = new MutationObserver(c => {
if (coords.textContent.includes('|'))
return;
const [x, y ] = coords.textContent.split(',').map(e => +e);
coords.textContent = `${x}, ${y} | (${x>>8}, ${y>>8})`
})
obs.observe(coords)


paste this in console if you want tile coordinates next to your pixel coordinate
>>
>>100070824
https://gitlab.com/zipdox/ipv6-canvas/
>>
>>100070874
Just proompt
>>
when I remove the censor off his penis, I like to pretend i'm licking it off, kinda hot
>>
>>100070874
>with retransmission
Pointless, I've noticed that even when my packets get a response, they still don't appear on the canvas. So I've given up on that approach.
>>
0,0 bad apple mogging 99,99 bad apple
>>
putting some cunny archive at 1142 7282
>>
>>100071116
As I expected, GPT 3.5 isn't good enough to do a ICMP packet sender, I'm giving up.
>>
File: ack.png (19 KB, 463x301)
19 KB
19 KB PNG
we gaan
it may not be C but it does send actual homemade icmp packets
>>
>>100070128
mmap'd memory doesn't show as occupied in htop for whatever retarded reason. probably same retarded conclusion as the tranny who claimed she had halved llama.cpp's memory usage a year ago. of course whatever is being used at any given time is in ram. and if you have a lot of traffic all over the place and your system isn't retarded as fuck it will keep that in memory as long as there is enough memory.
>>
>>100071989
>mmap'd memory doesn't show as occupied in htop for whatever retarded reason.
doesn't it show as cache (yellow bars)?
>>
>>100071989
mmap'd memory is the same as memory in the kernel's page cache, or whatever it's called. The whole point of mmap is that pages can be added ore removed from RAM as needed. Writing to mmap'd memory is much like doing a write(), except that the latter requires kernel entry and a memcpy.
>>
>>100071787
Just use Claude.
>>
>>100072024
Is it free? I'll check it
>>
>>100072052
>Claude is available in a bunch of african poor countries
>But isn't in Brazil
Is available in Israel as well too, if it matters
>>
can we not do porn? is that possible?
come on
>>
File: file.png (15 KB, 799x43)
15 KB
15 KB PNG
music i'm listening to atm

you can see it at 0,8960, it's a webm audio file ripped from yt-dlp

apparently cloudflare doesn't like this...
>>
>>100047790
This is a cool idea, encoding instructions or data into IPv6 isn't a novel idea (segmemt routing v6 compressed/micro header) but this specifically I have not seen. This has given me an idea, thank you OP.
>>
>>100072323
fuck, it's two periods, not three
>>
File: 1696176616481030.jpg (35 KB, 680x680)
35 KB
35 KB JPG
>>100047790
Even though this will permanently contain cunny or CP (or both), it is a nice and creative project.
Congrats OP for not being a faggot today.
>>
Site seems to be struggling, OP. Is one of the loliniggers spamming too much?
>>
>guy hammering server
>522
>523
>blank canvas
>dropped packets
>pixels not sticking
>>
>>100071214
I've been doing this and grabbing the canvas to skip existing pixels.
But when the site shits the bed it takes forever to get the canvas. It's faster to just crap everything out again.
>>
>>100071927
already done here >>100058235
>>
>>100072492
More fun to do it yourself
>>
File: file.png (472 KB, 1913x1883)
472 KB
472 KB PNG
>>100072323
kinda works but the server is shitting itself
>>
>>100065424
the packet loss and missing line are what make it so cool though

it has sovl
>>
>>100052696
>>100052611
>>100053623
OP I am BEGGING please ban the faggot thats constantly spamming that huge image of a loli with a penis

nobody this autistic deserves to get their way
>>
>>100073434
how does this qualify as spamming? I'm just protecting what I drew from vandalism, you have 95% of black space to fill, why are you bitching.
>>
cunny bros at 500,0, post the pic you're trying to draw, I'll help you
>>
>>100047790
What's the global adoption rate of IPv6 again? I mean for v6 only, no tunneling or dual IPs
>>
>>100073795
>v6 only
Will never happen.
>>
>>100061331
>>100067877
I envy midwits
>>
>>100073795
How do you set up tunneling? I wanted to see how fast I could spam but unfortunately I don't have a v6 public address
>>
>>100073877
They exist, but are very few and far between.
>>
File: file.png (47 KB, 1200x83)
47 KB
47 KB PNG
I had to open this up on my server because it was threatening to crash my desktop with 99% memory usage fully zoomed out on a 21:9 display
>>
>502
sirs...
>>
>>100074037
It's true though. Everyone uses IPv4 NAT as implicit firewall. With IPv6 you suddenly need a real firewall and network configuration gets harder.
>>
>>100073877
A lot of mobile carriers have switched to v6-only without anyone noticing.
>>
yeah I'm either crashing my modem or my ISP is disconnecting me lol
>>
I might have to implement threading soon.
>>
>>100074483
Sorry for the spam, OP. Trying my best to purge the loliniggers and shotaniggers from the site.
>>
>>100074483
implement mipmaps first nigger cattle
>>
>>100074483
Ask gpt4 to do it for you.
>>
>>100074483
In my opinion you should send compressed, downsampled images for faster scrolling.
>>
>>100074544
kys
>>
>>100074651
Go back to your honeypot containment altchan, nigger
>>
Pro tip for whoever's doing the "KILL YOURSELF YOU DIRTY PEDOPHILE" text. Don't place your pixels sequentially, it makes it easy for the pedonigger's bot to nuke your work. Place them randomly instead.
>>
File: 1470422075909.png (127 KB, 697x768)
127 KB
127 KB PNG
>>100074769
dilate, faggot
>>
>>100074769
>go on 4chan for the first time yesterday
>see drawings
>get erect at drawings
>get upset about it
>"YOU PEOPLE ARE BAD AND YOU SHOULD FEEL BAD"
lol
you're the dangerous one here if you see children here
>>
>>100074769
>>>/r/eddit
>>
>>100074840
are you retarded? or just a pedophile in denial
either way kill yourself faggot
>>
>>100074987
>are you retarded
I'm not the one being upset about drawings, thougheverbeit.
>>
>>100074987
looks like he struck a nerve
>>
>le bad drawings
>le pedo
>le tranny
God I hate nu-4cucks.
>>
>>100051754
Alex is a gay name.
>>
it's funny how the image of a real naked man doesn't seem to phase them but the drawing is somehow going too far
>>
>>100060508
sounds like a problem to take up with your isp
>t. hasnt had an ipv4 change in over a year
>>
>>100075186
>the image of a real naked man doesn't seem to phase them but the drawing is somehow going too far
must be a coincidence...
>>
>>100047790
OP, do you intend to get a better server after? We need to shitping more at your canvas, but the server is always acking
>>
OP here,
Experiment is beyond over. You guys failed hard.
Posting this on HN instead.
>>
File: youareretarded.jpg (31 KB, 601x508)
31 KB
31 KB JPG
>>100075186
>b-but there is image of real naked man!!
>why do you only complain about the image of a sexualized child??
>>
OP's system can be trivially optimized: just partition the canvas into several huge stripes, and assign each stripe to a separate server. This can be done by simple routing. The web server requires slightly more advanced load balancing, but since the tiles will align with the stripes, it can be done by URL. Or just make the JS request from separate user-visible servers depending on the stripe a tile is located in.
>>
>>100075360
load balancing isn't an optimization
>>
>>100075373
No, but balancing the load onto multiple servers when it was only a single one before is.
>>
>>100075343
>Didn't tripfagged
The experiment is going as intended. We made OP proud.
OP will be posting this here again tomorrow.
>>
>>100075387
>using more resources is optimization
lol
>>
>>100075350
holy mother of fags
>>
clear on draw is a welcome addition but now you can't tell if a tile is black because it hasn't loaded or if it has loaded and just was never used
>>
>>100075394
If shit gets faster, it's an optimization. Optimizations can trade one resource for another, like you can trade speed for memory use or the other way around. Stop being a dumb fag.
>>
File: 1648169039640.jpg (22 KB, 218x228)
22 KB
22 KB JPG
>>100065053
>but it's always off by a bit
Maybe you just need to add a bit, lul.
Pretty neat stuff, OP.
>>
File: file.png (100 KB, 1140x909)
100 KB
100 KB PNG
>>
>>100075462
refresh the page until it appaers
OP hosted it on Haiti, so it's always falling down
>>
>>100075429
You're a fucking retard.
Load balancing is about solving the problem of scaling, it has little to do with performance, it just generally achieves it as a side product, but it's not a goal. Things don't get faster by virtue of using load balancing.
>If shit gets faster, it's an optimization.
No, you fucking retard.
Optimization has to do with program design.
Would your program be faster if load-balanced on two machines that are half the specs of the current one? I doubt. Do you call upgrading your pc, "optimizing your programs"?
Spoke like a true webdev.
>>
>>100075485
I finally got through but the actual canvas seems to be loading poorly compared to yesterday
>>
>>100075543
And it is. OP made some changes to render it better (which I wouldn't say helped much), and the site got more traffic (more pings) compared to yesterday
>>
>>100075514
Retard take.
>>
>>100075288
Yeah I want to implement threading, so more than 2 threads would be nice.
>>
>>100075562
Retard
>>
>>100075565
have you even profiled your code to know if it'd help
>>
I imagine that compressing the data in transit between the client and server would help a lot.
Browsers have built-in transparent compression support via
Accept-Encoding
and
Content-Encoding
, and you can enable it both on your own web server as well as at CloudFlare, so bot. Might be worth looking into.
With gzip, for instance, a blank all-black-pixels tile is going to get bumped from 196608 bytes all the way down to 225. And a tile with a bit more going on is still going to see big savings. Currently, tile 0/0 is going to be something like 39499 bytes, which is still ~20% of the uncompressed size.

The readme does suggest compression at the web server level, so maybe you do have it and it's just not enabled between CloudFlare and the client? Check to make sure that it's a compression algorithm that CloudFlare supports too, it doesn't seem like they like deflate.
>>
>>100075485
>OP hosted it on Haiti, so it's always falling down
Probably got stolen by our fellow lovable people of colour.
>>
What are you using to serve the image?
Probably FCGI or something, right?
I needed to link zlib to make compression >>100075798 work with FCGI.
Shit was blazing fast (compared to PHP), but just a hobby project three years ago.
Me idiot did all the HTML stuff client-side, instead of serving data from a database and using JS to do all the front-end crap.
>>
>Try out my improvised pinger
>Site 502s
>>
>>100065639
Nice. Xiao is best girl (male).
>>
>>100065639
I knew my people were based
>>
I'm shutting it down for the night.
>>
File: file.gif (322 KB, 331x498)
322 KB
322 KB GIF
>>100076290
>>
>>100076290
ETA for the site's return?
>>
File: aaa.jpg (22 KB, 680x447)
22 KB
22 KB JPG
>blocklist
total loliniggers death

AHAHAHA
>>
>blocklist on icmp
ahahahaha
>>
>>100076488
>>100076677
>>100076290
Should probably just use iptables, no?
>>
aaaaaaaand ruined.
so you intend to ban people for breaking rules you never gave?
that's gay
>>
What blocklist? I don't see that anywhere
>>
OP said he's shutting the whole thing down for the night. I don't understand what all the whining is about.
>>
>>100076986
>>100076964
latest commit on repo implemented a "blocklist" which filters incoming icmp packets, which is retarded because it's based on the source field which can be falsified if you don't care about properly waiting for a response, which will in turn encourage "infringing user" (what did they infringe on exactly, no one knows) to just spam with fake source ips, and possibly exacerbate any problem they could have caused in the first place.
That's also an additional server load that's easily bypassed.



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.