1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php ini_set ( 'date.timezone' , 'Asia/Shanghai' ); use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer/src/Exception.php' ; require 'PHPMailer/src/PHPMailer.php' ; require 'PHPMailer/src/SMTP.php' ; $mail = new PHPMailer(); $mail ->SMTPDebug = 1; $mail ->isSMTP(); $mail ->SMTPAuth=true; $mail ->Host = 'smtp.qq.com' ; $mail ->SMTPSecure = 'ssl' ; $mail ->Port = 465; $mail ->Helo = 'Hello smtp.qq.com Server' ; $mail ->Hostname = 'haiyun.me' ; $mail ->CharSet = 'UTF-8' ; $mail ->Username = 'admin@haiyun.me' ; $mail ->Password = 'password' ; $mail ->FromName = 'fromuser' ; $mail ->From = 'admin@haiyun.me' ; $mail ->isHTML(true); $mail ->addAddress( 'touser@haiyun.me' , 'touser' ); $mail ->Subject = "这是标题" ; $mail ->Body = "这是内容" ; $status = $mail ->send(); if ( $status ) { echo '发送邮件成功' . "\n" ; } else { echo '发送邮件失败,错误信息:' . $mail ->ErrorInfo. "\n" ; } |
php使用qq域名邮箱smtp发送邮件
发布时间:February 20, 2018 // 分类: // No Comments
PHP CURL HTTPS内存泄露
发布时间:February 20, 2018 // 分类: // No Comments
用php curl写个程序采集Https网站长时间运行后内存占用很大,使用memory_get_usage()查看内存不变,用ps或top查看占用内存持续增长,经分析是php curl的问题,禁用php curl ssl校验即可:
1 | curl_setopt( $ch , CURLOPT_SSL_VERIFYPEER, 0); |
dnspod php api ddns
发布时间:February 18, 2018 // 分类: // No Comments
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <?php ini_set ( 'date.timezone' , 'Asia/Shanghai' ); if (isset( $_REQUEST [ 'id' ]) && ! empty ( $_REQUEST [ 'id' ]) && isset( $_REQUEST [ 'ip' ]) && ! empty ( $_REQUEST [ 'ip' ])) { $ip = trim( $_REQUEST [ 'ip' ]); $name = trim( $_REQUEST [ 'id' ]); $token = "www.haiyun.me" ; if (filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { $type = "A" ; echo 'ipv4' .PHP_EOL; } elseif (filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { $type = "AAAA" ; echo 'ipv6' .PHP_EOL; } else { echo "invalid IP address $ip" .PHP_EOL; exit ; } if (( $list = getlist( $token ))) { $key = $name . '-' . $type ; if (isset( $list [ $key ])) { if ( $ip == $list [ $key ][ 'value' ]) { die ( "no update needed" .PHP_EOL); } else { $list [ $key ][ 'value' ] = $ip ; } } else { $list [ $key ][ 'value' ] = $ip ; $list [ $key ][ 'record_type' ] = $type ; $list [ $key ][ 'sub_domain' ] = $name ; } modip( $token , $list [ $key ]); } file_put_contents ( 'ip/ip.log' , date ( "Y-m-d-H:i:s" ). '--' . $name . '--' . $_SERVER [ 'REMOTE_ADDR' ]. '--' . $ip . "\n" , FILE_APPEND); } function modip( $token , $value ) { if (isset( $value [ 'record_id' ])) { } else { } $str = http_build_query( $value ); $post_data = "login_token={$token}&format=json&domain=haiyun.me&record_line_id=0&" . $str ;; $data = post( $url , $post_data ); $data = json_decode( $data , 1); if (! $data ) { return '' ; } if ( $data [ 'status' ][ 'code' ] == 1) { echo "successful" .PHP_EOL; } else { echo $data [ 'status' ][ 'message' ].PHP_EOL; } } function getlist( $token ) { $post_data = "login_token={$token}&format=json&domain=haiyun.me" ; $data = post( $url , $post_data ); $data = json_decode( $data , 1); if ( $data [ 'status' ][ 'code' ] == 1) { foreach ( $data [ "records" ] as $value ) { $list [ $value [ 'name' ]. '-' . $value [ 'type' ]] = array ( 'sub_domain' => $value [ 'name' ], 'record_id' => $value [ 'id' ], 'record_type' => $value [ 'type' ], 'value' => $value [ 'value' ]); } return $list ; } return "" ; } function post( $url , $post_data ) { $ch = curl_init(); curl_setopt( $ch , CURLOPT_URL, $url ); curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1); curl_setopt( $ch , CURLOPT_FOLLOWLOCATION, 1); curl_setopt( $ch , CURLOPT_TIMEOUT, 5); curl_setopt( $ch , CURLOPT_MAXREDIRS, 5); curl_setopt( $ch , CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0' ); curl_setopt( $ch ,CURLOPT_POST, 1); curl_setopt( $ch ,CURLOPT_POSTFIELDS, $post_data ); $data = curl_exec( $ch ); curl_close( $ch ); return $data ; } ?> |
ROS DNAT
发布时间:February 10, 2018 // 分类: // No Comments
1 2 3 4 5 6 | /ip firewall nat \ add action=dst-nat chain=dstnat dst-port=22 in -interface=pppoe-out1 \ protocol=tcp to-addresses=192.168.1.1 to-ports=22 /ip firewall filter \ add action=accept chain=forward dst-address=192.168.1.1 dst-port=22 \ in -interface=pppoe-out1 protocol=tcp |
分类
- Apache (13)
- Nginx (45)
- PHP (86)
- IIS (8)
- Mail (17)
- DNS (16)
- Cacti (14)
- Squid (5)
- Nagios (4)
- Puppet (7)
- CentOS (13)
- Iptables (23)
- RADIUS (3)
- OpenWrt (41)
- DD-WRT (1)
- VMware (9)
- 网站程序 (2)
- 备份存储 (11)
- 常用软件 (20)
- 日记分析 (10)
- Linux基础 (18)
- 欧诺代理 (0)
- Linux服务 (18)
- 系统监控 (4)
- 流量监控 (7)
- 虚拟化 (28)
- 伪静态 (2)
- LVM (3)
- Shell (18)
- 高可用 (2)
- 数据库 (16)
- FreeBSD (3)
- 网络安全 (25)
- Windows (35)
- 网络工具 (22)
- 控制面板 (3)
- 系统调优 (10)
- Cisco (3)
- VPN (6)
- ROS (20)
- Vim (14)
- KMS (4)
- PXE (2)
- Mac (1)
- Git (1)
- PE (1)
- LNS (2)
- Xshell (7)
- Firefox (13)
- Cygwin (4)
- OpenSSL (9)
- Sandboxie (3)
- StrokesPlus (1)
- AutoHotKey (4)
- Total Commander (3)
- WordPress (3)
- iMacros (6)
- Typecho (2)
- Ollydbg (1)
- Photoshop (1)
- 正则 (3)
- Debian (3)
- Python (8)
- NoSQL (6)
- 消息队列 (4)
- JS (7)
- Tmux (3)
- GO (7)
- HHVM (2)
- 算法 (1)
- Docker (2)
- PT (15)
- N1 (16)
- K2P (6)
- LUKS (4)
最新文章
- 记联通更换移动XG-040G-MD光猫
- smokeping slave同步错误illegal attempt to update using time解决
- 使用valgrind定位解决smartdns内存泄露
- 此内容被密码保护
- debian12下initramfs-tools配置ip子网掩码255.255.255.255/32失败解决
- iPhone查看屏幕供应商
- 光猫拨号ImmortalWrt/OpenWRT路由获取ipv6遇到的问题
- php-fpm错误error_log日志配置
- debian-12/bookworm安装mariadb10.3和mysql5.6
- smokeping主从配置及遇到的问题
最近回复
- opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
- liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
- 海运: 不好意思,没有。
- zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
- 海运: 恩山有很多。
- swsend: 大佬可以分享一下固件吗,谢谢。
- Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
- 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
- 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
- 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...