Merge branch 'experiments_f72023'
This commit is contained in:
commit
b1fcf64d54
37
content/blog/2023-02-07-ipv6-canvas.md
Normal file
37
content/blog/2023-02-07-ipv6-canvas.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Blatant self-advertising on the IPv6 Canvas"
|
||||
description: "An ungodly amount of pings for a small bitmap"
|
||||
date: 2023-02-07
|
||||
tags: project
|
||||
draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: "Using some python, I have a reference to this website semi-permanently implanted on the IPv6 Canvas"
|
||||
---
|
||||
|
||||
Yesterday, the [IPv6 Canvas](https://blog.tugzrida.xyz/2023/02/06/introducing-the-ipv6-canvas/) was pushed to the public.
|
||||
|
||||
Of course, as soon as I learned of this, I threw together a script to place my domain `ewpratten.com` on the canvas for all to see.
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## How I'm doing this
|
||||
|
||||
The code is [public](https://github.com/ewpratten/v6-canvas-writer) for anyone wanting to do this themselves, and the process for getting everything working was pretty simple.
|
||||
|
||||
1. I designed the graphic in a random online pixel art editor
|
||||
2. The design was converted to a bitmap
|
||||
3. I have a Python script that can read an arbitrary bitmap and convert it to a list of IPv6 addresses
|
||||
4. Hundreds of `ping -c 1` processes are spawned in the background to write the image to the canvas
|
||||
|
||||
This script is executed via a Cron job on one of my edge routers for maximum IP nerdiness.
|
||||
|
||||
### Why ping?
|
||||
|
||||
I considered doing this with some clever `mtr` commands, or even crafting the ICMP ECHO packets straight from the script, but that was slightly too much work for the 5 minutes I had before work this morning.
|
||||
|
@ -1,6 +1,6 @@
|
||||
.ewp-navbar {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
// margin-bottom: 1em;
|
||||
text-align: center;
|
||||
|
||||
.navbar-items {
|
||||
@ -13,10 +13,21 @@
|
||||
|
||||
// & > li {
|
||||
// display: inline-block;
|
||||
|
||||
|
||||
// .dropdown-menu {
|
||||
// box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
.announcement {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
background-color: rgb(239, 239, 239);
|
||||
margin-top: 0;
|
||||
padding: 0.25em;
|
||||
border: 2px dashed grey;
|
||||
border-top: none;
|
||||
color:dimgray;
|
||||
}
|
||||
|
BIN
static/images/posts/ipv6-canvas/v6_canvas_1.png
Normal file
BIN
static/images/posts/ipv6-canvas/v6_canvas_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 565 KiB |
BIN
static/images/posts/ipv6-canvas/v6_canvas_2.png
Normal file
BIN
static/images/posts/ipv6-canvas/v6_canvas_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 695 KiB |
@ -5,6 +5,7 @@
|
||||
{% set is_article = false %}
|
||||
{% set feature_flags = [] %}
|
||||
{% set redirect_target = "" %}
|
||||
{% set announcement = "" %}
|
||||
{% endblock variable_wormhole %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
@ -58,6 +59,10 @@
|
||||
{# Navbar #}
|
||||
<div class="container">
|
||||
{% include "components/navbar.html" %}
|
||||
|
||||
{% if announcement %}
|
||||
<p class="announcement">{{announcement | safe}}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{# Actual content #}
|
||||
|
@ -30,5 +30,5 @@
|
||||
·
|
||||
<a href="/contact">Contact</a>
|
||||
</span>
|
||||
<hr>
|
||||
<hr style="margin-bottom:0;">
|
||||
</div>
|
@ -30,6 +30,7 @@
|
||||
{% if section.extra.uses %}
|
||||
{% set feature_flags = section.extra.uses %}
|
||||
{% endif %}
|
||||
{% set announcement = "Found me though the IPv6 Canvas? Click <a href='/blog/ipv6-canvas'>here</a>." %}
|
||||
{% endblock variable_wormhole %}
|
||||
|
||||
{# Page content #}
|
||||
|
Loading…
x
Reference in New Issue
Block a user