当前位置:聪少自媒体网 > 网赚知识 > 正文

编那么多软件放在网上怎么赚钱.我开发共享软件的三次经历(中):我赚到了十万块

2021-07-03 网赚知识 聪少自媒体

共享软件这个词,如今似乎离我们已经越来越遥远了。还有人记得超级兔子吗?还有人知道netants吗?这些辉煌一时的明星,已逐渐消失在人们的视野中。今天已经是免费软件的世界。互联网行业的巨头们,打造的免费模式,给共享软件敲响了丧钟。

共享软件,曾经寄托了多少程序员们创业致富的梦想。我也曾加入共享软件的大潮中,开发过差不多近十个共享软件,最后它们大都灰飞烟灭了,但其中三次经历,还是给我的程序员生涯留下了难以磨灭的记忆。

? ? ?本人拙作《程序员第二步-从程序员到项目经理》已经到货,当当网、京东网、天猫商城均可购买,谢谢各位园友们的长期大力支持!

?

第二篇:淘宝发布大王-我赚到了十万块

我开发的第二款让我难忘的共享软件是淘宝发布大王。

这是一款比隐藏专家还要简单的软件,这个软件是针对淘宝卖家的,它的功能很简单,就是每隔一段时间,就把卖家店里的下架的宝贝自动上架。

这个软件最先是给我老婆自己用的。她在淘宝上开了一个网店卖银饰,商品有四五百件。当时淘宝还没有自动上架功能,卖家的商品在一个周期内(好像是7天)没有卖出去,就会自动下架。你要想再上架重新卖,必须要手动操作,找到没有卖出的宝贝,选中它,然后点击上架。四五百件商品,就是说每天要重新上架六七十件,这实在是一件很繁琐、枯燥的工作。于是淘宝发布大王就应运而生了。

?

我们自己用了之后,觉得确实很方便,再也不用每过一段时间就要跑到电脑前面上架宝贝了,软件开在那里,基本上什么不用管,比以前省事多了。后来我们想,既然有用,别的卖家肯定也需要,于是我们把软件挂出来卖,70块钱一台机(绑定网卡),没想到反响不错,没过几天,卖软件的销售利润就比老婆卖银饰赚的还要多。

当我们卖这款软件时,市面上根本没有竞争对手,只此一家,别无分店。可是一个多月后,出现了许多模仿者,它们中一些,在销量上可能还超过了淘宝发布大王。即使如此,淘宝发布大王的销量也还是可以的,差不多每天能卖十来个授权,这对于当时的我来说,实在是一笔不菲的收入。大概是由于用的人越来越多,引起了淘宝网的注意,他们还曾派人电话采访了我,说要写一篇采访稿,记录淘宝网二次开发人员的创业情况,可惜的是,我一直没有见到那篇文章。

更可惜的是,好景不长。这个软件还没卖上一年,淘宝网就推出了宝贝自动上架功能,淘宝发布大王再也没有用开之地了,它自然的消失,我的致富梦也戛然而止。

最后统计了一下,这个软件卖了超过十万元。说起来不多,但对于当时拿着几千元月薪的我来说,已经是一笔不小的数字了。靠着这笔钱,我终于拥有了属于自己的房子,开始了幸福的房奴生活。几年后,广州房价飙升,现在再次回想起来,可以说淘宝发布大王从一定程度上改变了我的人生轨迹。

?

下面谈一谈技术吧。

淘宝发布大王基于.net 1.1开发,在技术上并没有什么特别的难度,其核心过程有三步:

(1)采用HttpWebRequest类,将用户名、密码等信息构造成post数据,发送过淘宝网登录页面。收到返回信息后,记录下cookie。通过携带cookie信息,保持HttpWebRequest的登录状态。

(2)HttpWebRequest再get待上架宝贝页面,解析页面html,获得的宝贝ID集合。

(3)将宝贝ID列表、上架操作指令构造成post数据,发送到待上架宝贝页面,上架成功。

可见,最核心的就是采用HttpWebRequest类来与服务器交互,代码如下:

?

? private?static?bool?PostData?(string?url,string?postData,ref?string?result)

? {

try

{

HttpWebRequest?request?=?(HttpWebRequest)WebRequest.Create(url);

request.CookieContainer?=?m_CookieContainer;?

request.Method?=?"POST";

request.ContentType="application/x-www-form-urlencoded";

byte[]byte1=Encoding.Default.GetBytes(postData);//最终编码后要上传的数据

request.Timeout?=?20000;

request.ContentLength?=?postData.Length;

Stream?writeStream?=?request.GetRequestStream();

writeStream.Write(byte1,0,postData.Length);

writeStream.Close();

HttpWebResponse?response?=?(HttpWebResponse)request.GetResponse();?

if?(response.StatusCode?==?HttpStatusCode.OK)

{

Stream?stream?=?response.GetResponseStream();?

StreamReader?reader?=?new?StreamReader(stream,System.Text.Encoding.Default);?

result?=?reader.ReadToEnd();?

stream.Close();?

reader.Close();?

response.Close();

}

else

{

result?=?"";

return?false;

}

return?true;

}

catch(Exception?ex)

{

WriteLog(ex.Message);

return?false;

}

}

?

?

淘宝发布大王在授权方面使用了非对称加密算法,私钥用于生成注册码,只在我自己的电脑上运行;公钥用于验证注册码,在用户的电脑上运行。

注册码验证采用RSACryptoServiceProvider类提供的VerifyData方法即可,代码如下。

? ? ? ?public?static?bool?Verify(byte[]digestInput,?byte[]?signed)

{

try

{

RSACryptoServiceProvider?RSAalg?=?new?RSACryptoServiceProvider();

RSAalg.ImportParameters(GetParam());

return?RSAalg.VerifyData(digestInput,?typeof(SHA1CryptoServiceProvider),signed);

}

catch

{

return?false;

}

?}

?

?private?static?RSAParameters?GetParam()

?{

//用公钥验证

RSAParameters?param?=?new?RSAParameters();

param.Exponent?=?Convert.FromBase64String("AQAB");

param.Modulus?=?Convert.FromBase64String("55/Jb2IaIoEkgiDHWaHVRnsLivGYtNO/N6I+2P9qh12cm5vvZFk0/7EpuT1PiqruquJ/jbrp3dDDHZeT9xVi1uQ2HQDEcPBnX6FWowTqBHFHG9O00wLy3pCfmKpIRqD4ZRRKhcdtVnKndSTjp6Qrv5vbxWX6+mO9Mz6qF6k+JDc=");

return?param;?

?}

?采用非对称加密算法的好处就是,即使你破解了我的软件,拿到公钥,你也没办法生成注册码,从而比较好的保证软件的安全性。

网卡macid可以通过.net提供的WMI类库来实现,然而它获取的网卡地址只是写在注册表中的地址。这种地址是可以通过软件工具修改的。如果用户通过第三方软件修改了mac地址,WMI就是无法获取真实的网卡地址了。

那有什么办法可以获取网卡的真实的特理地址呢?有,那就要用到Windows API函数DeviceIoControl了,代码如下:

? ? ?private?static?string?GetPhysicalAddr(string?cardId)?{

string?macAddress?=?string.Empty;

uint?device?=?0;

try?{

string?driveName?=?"\\\\.\\"?+?cardId;

device?=?Win32Utils.CreateFile(?driveName,

?Win32Utils.GENERIC_READ?|?Win32Utils.GENERIC_WRITE,

?Win32Utils.FILE_SHARE_READ?|?Win32Utils.FILE_SHARE_WRITE,

?0,?Win32Utils.OPEN_EXISTING,?0,?0?);

if?(device?!=?Win32Utils.INVALID_HANDLE_VALUE)?{

byte[]?outBuff?=?new?byte[6];

uint?bytRv?=?0;

int?intBuff?=?Win32Utils.PERMANENT_ADDRESS;

?

if?(0?!=?Win32Utils.DeviceIoControl(?device,?Win32Utils.IOCTL_NDIS_QUERY_GLOBAL_STATS,

ref?intBuff,?4,?outBuff,?6,?ref?bytRv,?0?))?{

string?temp?=?string.Empty;

foreach?(byte?b?in?outBuff)?{

temp?=?Convert.ToString(?b,?16?).PadLeft(?2,?'0'?);

macAddress?+=?temp;

temp?=?string.Empty;

}

}

}

}?finally?{

if?(device?!=?0)?{

Win32Utils.CloseHandle(?device?);

}

}

?

return?macAddress;

}

?

淘宝发布大王虽然生命周期很短,但基本上还算是一个成功的软件(起码算不上失败吧)。能把自己的软件卖出去,这是一个很爽的过程,从中获得的快感不是用金钱能衡量的,通过开发淘宝发布大王,我收获了一些物质财富,更重要的是获得了快乐。

在开发共享软件方面,有两点也许值得思考:

一是如果从自己熟悉的、甚至自己直接需要的东西入手,也许更容易成功;

二是共享软件不在于功能有多强大,而在于多大程度上满足用户的实际需求。

? ? ? 与各位共勉!

---------------------------------

? ? ? ? 本人拙作《程序员第二步--从程序员到项目经理》已经到货,谢谢各位园友的长期支持!

? ? ? ? 当当网:http://product.dangdang.com/23365823.html?

? ? ? ? 京东网:http://item.jd.com/11350488.html? ?

?

相关文章:
聪少爱学堂聪少
聪少爱学堂创始人,梅州市鹏鑫网络科技有限公司CEO,09年开始踏入互联网,10年互联网行业经验,资深自媒体人,自媒体优秀导师,咪挺微商团对营销引流顾问,业务包含:精准引流技术/代引流精准粉,专业小红书,知乎,微博代运营。
  • 38988文章总数
  • 1491136访问次数
  • 建站天数
  • 合作伙伴