自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Go学习之遇到的第一大坑

最近最近开始学习go语言初步设想是通过mysql,建一张表,然后通过Go把这张表的数据以JSON格式提供出去环境搭建好后,跑程序发现无论如何也无法通过浏览器展示想要看的数据最终在室友的帮助下,发现是数据结构体定义出了问题使用我定义的结构体: type ser

2016-12-23 11:37:08 721

原创 Go语言用defer定义函数比较奇怪的地方

go来打印斐波那契前十项数列,使用defer实现:可以看到"defer func() int {......}"后面还有个"()",没理解为什么要写成这样,目前也只能当做是标准语法了。后续如果理解了再更新。

2016-12-21 13:32:04 438

原创 Golang语言学习之占位符“_”(下划线)

不同最近开始学习Golang,发现一个和其他语言很大不同的东西---占位符“_”(下划线)之前学习C语言、python、java,都没用见过有占位符一说的用处占位符可以作为一个变量被赋值那么它和普通变量的区别是什么呢?举个例子,有些函数返回值不止一个,像python,我们只需要其中一个值的时候,也需要定义多个变量来接受函数返回有了

2016-12-20 23:06:28 1804

原创 FCTRL - Factorial的python实现

题目说明该题目来源于SPOJ:http://www.spoj.com/problems/FCTRL/大体意思是给定一个数n,求n的阶乘有多少个0结尾。由于n最大可以是1000000000,笔者初步的算法1,虽然相比整个n遍历一次O(n)时间复杂度减少了80%,但还是无法满足需求;于是有了算法2;算法2使用递归实现,对于n = 1000000000,只需要递归12次就可以结束,时间复

2016-04-25 02:31:48 1221

原创 ONP - Transform the Expression问题的python实现

原题链接:http://www.spoj.com/problems/ONP/由题目可知,是把中缀表达式转换为后缀表达式(又称逆波兰表达式);关于逆波兰式,我比较懒,没去翻书,可以参考下这篇博文:http://www.cnblogs.com/wanghetao/archive/2012/04/23/2466580.html说明:博客里面作者对算法,对"("出栈处理没写

2016-04-25 00:48:53 603

原创 构造特定五元组的HTTP报文,和trace route

当怀疑网络上特定路径或机器有问题时,就需要构造特定五元组反复抓包确认;下面是使用nc沟通TCP特定五元组的HTTP GET:echo -en "GET / HTTP/1.0\r\n\r\n" | nc -p 59714 -w 2 x.x.x.x 80下面是基于上面构造特定五元组时,找到每一跳走的路径地址:sudo traceroute -T --sport=5971

2015-11-23 19:12:42 1329

原创 IP地址按数字大小排序

以下IP地址,我想让每段以点号分隔的IP都按照数字大小排序,而不是字符大小排序:1.1.1.11.1.2.11.1.10.21.2.108.11.3.2.12.1.20.1使用linux sort命令排序查看结果:root@ ~$ cat ip1.1.1.11.1.2.11.1.10.21.2.108.11.3.2.12.1.20.1root@ ~$ sor

2015-08-18 21:43:32 3766

原创 169.254.0.0/16这段地址用途

一直困惑169.254.0.0/16是干嘛的,每次笔记本dhcp获取地址失败后,就会随机在这个B类地址段获取一个地址;今天抽空翻了下rfc,发现在 rfc5735 里面有对所有特殊网络地址说明,链接:以下引用rfc5735:169.254.0.0/16 - This is the "link local" block. As described in [RFC3

2015-08-07 15:19:02 16268

原创 通过dropwatch定位系统内核丢包

网工面对业务反馈数据中心内部2台Server之间丢包,首先会查端到端之间所有链路有无拥塞、端口CRC问题;确认没有异常后,会开始怀疑是Server本身丢包,但我们知道,物理服务器一般会查下物理网卡有无丢包,但一般网卡丢包的可能性很小,但如果包是丢在内核网络层怎么办呢?通过抓包分析会因为场景的不同,数据的多少造成分析困难重重。Linux从2.6.30开始支持Netwo

2015-02-01 23:01:10 11415

原创 python字符串方法join

今天碰到一个问题,需要写子网掩码转换,从/24这种转换到255.255.255.0,或者反过来;通常是把/24拆成4组数字或字符串,再用str('%s.%s.%s.%s')打印出来,但是发现字符串有个join方法比较好使,如:>>> L['255', '255', '255', '0']>>> '.'.join(L)'255.255.255.0'>>>这么就简单搞定了几串字符串

2013-08-28 23:10:31 774

原创 Quagga里面的宏定义

Quagga宏定义以前在看Quagga源码的时候,被里面的宏定义搞残了,根本看不懂啊,今天再回头看了2小时多,还是不懂啊,就在要放弃的时候,我按照C语言宏的定义开始将这个宏一步步展开,发现居然被我搞定了,不容易。。。DEFUN宏定义Quagga的命令是以宏来定义的,如zebra的“link-detect”命令,是在“zebra/interface.c”中声明实现的:

2013-08-11 02:06:12 933

原创 apache用cgi脚本碰到的错误

诡异错误浏览器访问脚本出错,本地执行没问题:[root@Sven cgi-bin]# ./simple2.cgi Content-type: text/plainHello, world!错误详情url访问脚本出现以下错误:Internal Server ErrorThe server encountered an internal error or m

2013-08-10 13:11:30 1286

原创 今天购买了阿里云服务器,编译安装python遇到的问题

Python编译安装错误今天心血来潮买了云服务器体验一把,主要是想有个环境可以学习和验证自己对编程、系统和网络的一些理解。系统版本CentOS release 6.3 (Final)configure错误碰到已下错误,很明显没GCC工具不在环境变量PATH里面,可以看出云服务器默认没有安装[root@Sven Python-3.3.2]# ./c

2013-08-10 12:21:04 2982

原创 python socket模块遇到编码问题

今天敲了书《Python基础教程第二版》 14章网络编程代码14-1,如下,稍微修改了些:客户端:import sockets = socket.socket()host = '127.0.0.1'port = 1234s.connect((host, port))print(s.recv(1024))服务端:import sockets = socke

2013-08-07 00:13:25 2821 2

原创 用python的tkinter模块写了个查询IP地址的小程序

网工会经常做一件事情,就是在排查网络故障的时候,通过traceroute目的IP的方式,然后打开百度或者谷歌,查其中某一跳的IP地址属于那个城市,ISP信息。这个效率比较低,下面我通过淘宝IP地址库提供的API封装一个小工具,就可以实时查询IP地址了。有2个版本,一个是Linux 命令行版,另一个是GUI版本;淘宝IP地址库地址:http://ip.taobao.com

2013-08-04 01:20:20 2813 1

原创 python2.X和3.X版本差异问题

就我写的程序而言,碰到以下兼容性问题:1、urllib模块python26当中请求url:ret = urllib.urlopen(url)python33当中请求url:ret = urllib.request.urlopen(url)区别就是urlopen函数一个是直接封装在urllib当中,新版本是封装在urllib.request下。2、tkinter模

2013-08-02 14:46:34 809

原创 Quagga添加自己的命令

参考了王斌的文档:http://down.51cto.com/data/621454TIP:笔者使用的版本是0.99.20需求:在接口模式下添加一条"ip ospf enable"的命令,什么也不做,只输出一些字符;Quagga内的视图是在vtysh.h定义的,位置:“vtysh/vtysh.c”,我常接触的主要有以下:/* Vty node structures. *

2013-07-14 22:40:34 1731

原创 菜鸟学习网络协议软件Quagga,修改ospfd vty端口和编译安装

TIP:笔者的系统是红帽6U3,编译安装前记得把gcc各种依赖工具先安装上,避免编译出错    本文目的是为了学习如何编译安装开源软件Quagga,并修改下OSPF模块的vty登录端口号,借此熟悉下,它是一款网络协议软件,支持OSPF、BGP、RIP等路由协议,我工作中主要接触到的是OSPF模块。1、下载Quagga    我使用的版本是0.99.20,下载地址http

2013-07-14 00:24:40 2897 2

原创 ssh登录linux服务器很慢的原因

linux下,ssh 1.2.3.4登录Linux的时候会很慢,要过很久才显示输入密码,其原因是sshd进程会根据ip去反解域名,再根据域名反解ip,然后才去登录;如果ip对应物域名的话就很慢了,解决方案是关闭域名解析;找到sshd配置文件修改掉配置项“GSSAPIAuthentication”,设为no即可,见:[root@sven ~]# cat /etc/ssh/sshd

2013-07-09 23:05:00 1284

原创 python线程池(threadpool)模块使用

python线程池模块threadpool使用,对脚本执行时间要求比较高的可以尝试下

2013-07-04 01:18:56 15298 3

原创 python 打印json格式的数据中文显示问题

通常会有这么一个应用场景,会用python去处理json格式的web API,以“ip.taobao.com”的API为例,详情见http://ip.taobao.com/instructions.php是一个查询ip地址归属地的接口,其中包括国家、地区和ISP这些信息,均为中文显示。我会用如下方式获取API数据:myjson = json.loads(urllib

2013-06-24 00:17:44 11640

原创 服务器网卡bonding配置浅读

最近看了下服务器网卡bonding驱动的文档,网络比较关心,和大家分享下,文档参见Linux内核目录($KERNEL_DIR/Documentation/networking/bonding.txt)我看的是内核linux-2.6.32.60的,源码和文档可以去www.kernel.org下载。网卡绑定支持7中模式,使用mode选项来配置,具体如下:    balance-

2013-01-12 11:12:15 2482

原创 udp cksum

目前碰到一个奇怪的现象,某台机器(就叫hostA吧)上面tx-checksumming是开启状态下,所有本地发出去的UDP报文用tcpdump -vvv udp抓出来,凡是从这台主机发出去的包所有包全部显示bad udp cksum,收到的UDP包则没有一个是bad udp cksum的。    而在另外一台机器(就叫hostB吧)上面,则没有一个bad udp cksum的包,抓包不多,10

2012-12-28 02:14:58 3464

原创 关于狂人C第九章练习题二

题目出自:http://www.cnblogs.com/KBTiller/archive/2010/12/23/1914542.html题目:    (2)一个旅行社要从n个旅客中选出一名旅客,为他提供免费的环球旅行服务。旅行社安排这些旅客围成一个圆圈,从帽子中取出一张纸条,用上面写的正整数m(编程对某个给定的n = 8与m = 3,给出被淘汰出列的旅客编号,以及最终的幸存者。

2012-11-18 23:21:45 568

原创 C语言指针和数组理解

今天看《狂人C》关于指针这一章,感觉自己C语言对于指针的理解确实更进一步了,作者代码命名和格式虽然不怎么样,但是确实理解透彻,讲得通俗,对于我这样的入门级选手还是不错的。    首先关于指针的几个结论的理解:    指针存储大小与操作系统位数有关,一般装的是32位的操作系统,那么指针输出来显示的便是32位,合4字节,64位边是8字节,特别注意的是这个存储空间与存放数据的大小不是一个概念,这

2012-09-10 00:40:38 692

原创 gcc检测不到的逻辑错误?

今天尝试《UNIX环境高级编程》的例1-5,代码如下:#include #include #include "ourhdr.h"int main(void){ char buf[MAXLINE]; pid_t pid; int status; printf("%% "); /

2012-06-26 17:45:47 502

原创 dhcp容灾方案(主备)所遇到的问题以及解决方案

今天折腾了dhcp主从服务器从官方http://www.isc.org/software/dhcp下载了dhcp-4.2.3-P2.tar.gz然后开了两台虚拟机,分别编译安装shell命令用红色注明,其他为系统输出1、编译安装 tar -xvzf dhcp-4.2.3-P2.tar.gz -C /usr/local/src cd /usr/local/sr

2012-03-06 18:42:10 4050 1

转载 bash shell脚本处理传参,getopts的使用

参数处理-Shell传入参数的处理1. $# 传递到脚本的参数个数2. $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个3. $$ 脚本运行的当前进程ID号4. $! 后台运行的最后一个进程的进程ID号5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数6. $- 显示shell使用的当前选项,与set命令功能相同7. $?

2012-02-24 11:32:41 1709

原创 ARM9通过nfs启动遇到的问题以及解决

<br />今天在Win7下用虚拟机的Red Hat Enterprise Linux 5作为宿主机<br />想通过上面启动nfs服务<br />然后使用ARM开发板通过nfs挂在宿主机的根文件系统启动系统<br />配置nfs服务器的/etx/exports文件的时候<br />我输入的是如下格式:<br />/opt/rootfs_qtopia_qt4 *(rw, sync, no_root_squash)<br />配置完成后重启nfs服务遇到如下问题:<br /><br />也不管它,我就是用mo

2011-05-18 18:27:00 536

原创 杭电1013的疑问?

#include #include #define SIZE 1024int main (){// int n, sum;/* while (scanf ("%d", &n), n != 0) { sum = 0; while (n) { sum += n % 10; n /= 10; if (n==0 && sum>9) { n = sum; sum = 0; } } printf ("%

2010-12-25 15:39:00 630

原创 关于free释放内存

最近将C程序设计教程(C How To Program)第二版书上12-3的例子敲上电脑程序如下:#include #include #include struct listNode { char data; struct listNode * nextPtr;};typedef struct listNode LISTNODE;typedef LISTNODE *LISTNODEPTR;void insert (LISTNODEPTR *, char);char deletex (LISTNODEPTR

2010-12-24 10:46:00 937

原创 开始写博客

<br />        从现在开始写博客,以前一直是在QQ空间上写东西,不管什么都放上面,后来觉得这样不大好,想了想作为一个计算机专业的,那就在csdn写博客吧,反正大部分东西都和程序代码相关,放在这,也可以和大家交流交流,以我现在的水平,大概只能去膜拜各位大神吧。

2010-12-22 20:03:00 379

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除