function notification (): void {
$message = 'Текст сообщения';
$command = 'msg %username% "'.$message.'"';
shell_exec("powershell -command [console]::beep(500, 300)");
shell_exec($command);
}
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
// код для мобильных устройств
} else {
// код для обычных устройств
}
fetch('test', {
method: 'POST',
headers: {
"Content-Type": "application/json;odata=verbose",
},
body: JSON.stringify({
"__metadata": { "type": "SP.Data.List4.ListItem" },
})
});
#!/bin/bash
DNS_SERVER=8.8.8.8
BLACKLIST_URL="http://antizapret.prostovpn.org/iplist.txt"
#куда класть файл proxy.pac
PACDIR=/var/www/html
TMPLIST=/tmp/iplist.txt
#домены, которые нужно пускать через прокси независимо от содержимого iplist.txt
DOMAINS=(\
rutracker.org \
facebook.com \
facebook.net \
fbcdn.net \
twitter.com \
twitter.co \
t.co \
twimg.com \
twitpic.com \
periscope.tv \
pscp.tv \
)
#качаем чёрный список
wget -q --tries=10 -O "$TMPLIST" "$BLACKLIST_URL"
# вытаскиваем IP наших прописанных доменов
declare -a EXTRAIPS=()
for domain in "${DOMAINS[@]}"
do
dig A "$domain" +short @$DNS_SERVER | grep -v '\.$' >>"$TMPLIST"
done
#в чёрном списке есть отдельные IP и есть подсети
#также чёрный список очень длинный, поэтому кодируем его более компактно.
IPLIST=`grep -Ex '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' "$TMPLIST" | awk '/^[0-9]+/ {split($1,b,/\./); printf("0x%02x%02x%02x%02x,", b[1],b[2],b[3],b[4]);}'`
SUBNETLIST=`awk '/[0-9.]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+/ {split($1,p,/\//); printf("[\"%s\", %s], ", p[1], p[2]);}' <"$TMPLIST"`
#генерируем proxy.pac по шаблону
#он проверяет домен на вхождение в фиксированные домены, а потом IP по списку.
function templatePAC {
NAME=$1
shift
DMNLIST=("$@")
cat >"$PACDIR/$NAME" <<EOF
function FindProxyForURL(url, host) {
var domainblacklist = [
EOF
for d in "${DMNLIST[@]}"
do
echo " '$d'," >>"$PACDIR/$NAME"
done
cat >>"$PACDIR/$NAME" <<EOF
];
var ipblacklist = [ $IPLIST ];
var subnetblacklist = [ $SUBNETLIST ];
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
function numberToMask(n) {
var m=[0,128,192,224,240,248,252,254,255];
var r=[];
for (var i=0; i<4; i++) {
var p = (n > 8) ? 8 : n;
r[i] = m[p];
n -= p;
}
return r.join(".");
}
function maskMatch(ip, mask) {
var m = numberToMask(mask[1]);
return isInNet(ip, mask[0], m);
}
var blocked = false;
for (var i=0; !blocked && (i<domainblacklist.length); i++)
blocked = blocked || ((host == domainblacklist[i]) || endsWith(host, '.'+domainblacklist[i]));
if (!blocked) {
var ip = dnsResolve(host);
for (var i=0; !blocked && (i<subnetblacklist.length); i++)
blocked = blocked || maskMatch(ip, subnetblacklist[i]);
blocked = blocked || (ipblacklist.indexOf(convert_addr(ip)) != -1);
}
if (blocked)
return "PROXY ТУТ_ТВОЙ_ПРОКСИ:ПОРТ";
else
return "DIRECT";
}
EOF
}
# генерируем файл
templatePAC proxy.pac "${DOMAINS[@]}"
rm -f "$TMPLIST"
#
# MyBaseimage Dockerfile
#
# Pull base image.
FROM ubuntu:14.04
MAINTAINER Your Name <your.email@gmail.maybe>
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y language-pack-en
ENV LANGUAGE en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
RUN locale-gen en_US.UTF-8
RUN dpkg-reconfigure locales
RUN echo "Etc/UTC" > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata
RUN apt-get install -y build-essential
RUN apt-get install -y python python-dev python-setuptools python-pip python-virtualenv
RUN apt-get install -y libxml2-dev wget
RUN apt-get install -y libpcre3
RUN apt-get install -y libpcre3-dev
RUN apt-get install -y libssl-dev
RUN apt-get install -y libncurses5-dev
RUN apt-get install -y git git-core
RUN apt-get install -y libpq-dev
# install nginx
RUN apt-get install -y software-properties-common python-software-properties
RUN apt-get update
docker build -t your_docker_account/your_baseimage .
#
# MyApp Dockerfile
#
# Pull base image.
FROM your_docker_account/your_baseimage
MAINTAINER Your Name <your.email@gmail.maybe>
# Set instructions on build.
RUN virtualenv /env
ADD ./ /code
RUN cd /code; /env/bin/python setup.py install
RUN cp /code/config/config.yml.docker_example /etc/code/config.yml
# Expose ports.
EXPOSE 8484
WORKDIR /code
CMD ["/env/bin/python", "app.py"]
docker build -t your_docker_account/your_app_container .
docker run -p :5432:5432 --name my_postgresdb_container -e POSTGRESQL_DB=mydb_name -e POSTGRESQL_USER=mydb_user -e POSTGRESQL_PASS=super_secret_password -d kamui/postgresql
docker run -d -p :5000:5000 \
--name my_app_container \
--link my_postgresdb_container:postgresdb \
-e DOCKERDB_ENV_POSTGRESQL_DB=mydb_name \
-e DOCKERDB_ENV_POSTGRESQL_USER=mydb_user \
-e DOCKERDB_ENV_POSTGRESQL_PASS=super_secret_password \
your_docker_account/your_app_container
docker exec -it your_app_container /bin/bash
docker logs -f your_app_container
your_app:
build: .
links:
- postgresdb
ports:
- "5000:5000"
environment:
DOCKERDB_ENV_POSTGRESQL_DB: mydb_name
DOCKERDB_ENV_POSTGRESQL_USER: mydb_user
DOCKERDB_ENV_POSTGRESQL_PASS: super_secret_password
postgresdb:
image: kamui/postgresql
ports:
- "5432:5432"
environment:
POSTGRESQL_DB: mydb_name
POSTGRESQL_USER: mydb_user
POSTGRESQL_PASS: super_secret_password
docker-compose up