首页 > golang > #yyds干货盘点# 如何生成手机可识别的电话簿文件
2019
08-17

#yyds干货盘点# 如何生成手机可识别的电话簿文件

支付宝查询号码

1.支付宝好友电话号只能显示前三位跟最后两位

怎么查到中间的六位数字是什么呢?
10的六次方是百万级别,这么大的值枚举是不是太大了

2.借助工具生成电话号然后生成通讯录导入到手机。

如果你的通讯录有这个好友那么,支付宝会自动的显示全所有的电话号

3.电话号的组成

前三位代表运营商,移动,联调,电信
中间四位代表区域,北京,南京,天津(百度查号吧可查)

4.java生成电话号代码

public class test {

public static String pre = "147";
public static String taiZhouMid[] = {"0576","5708","5720","5760","5762","5764","5766","5768",
"5780","5782","5784","0586","5709","5721","5761","5763","5765","5767","5769","5781","5783"};
public static String taiYuanMid[] = {"0066","0341","0351","1780","1781","3510","3511","3512",
"3513","3514","3515","3530","3531","3532","3533","3534","3535","3536","3537","3538","3539","6524",
"6638","6639","9715","9716","9717","9718","9719","9720","9721","9722"};
public static String shuoZhouMid[] = {"1797","3500","3571","3572","3573","3574","3575","3576",
"9710","9711"};
public static String last = "43";
public static void main(String[] args){
creat(shuoZhouMid);
}
public static void creat(String mid[]){
try {
BufferedWriter out = new BufferedWriter(new FileWriter("D://phone.txt"));

java.text.DecimalFormat df=new java.text.DecimalFormat();
df.applyPattern("00");
StringBuilder phoneNumber = new StringBuilder();
System.out.println(mid.length);
for(int i = 0 ;i<mid.length;i++){
for(int j = 0;j<100;j++){
phoneNumber = phoneNumber .append(pre).append(mid[i]).append(df.format(j)).append(last) ;
out.write(phoneNumber + "rn");
phoneNumber.setLength(0);
}
}
out.close();
System.out.println("文件创建成功!");
} catch (IOException e) {
}
}
}

5.python生成电话号代码

#!/usr/bin/python
# -*- coding: UTF-8 -*-


def create():
f = open('test.txt', 'w')
for i in range(100):
if i < 10:
mid = '0' + str(i)
else:
mid = str(i)
line = '1580429' + mid + '51'
f.write(line)
f.write("tn")
f.close()


def display():
f = open('test.txt', 'r')
print(f.read())


if __name__ == "__main__":
# i = 100
# str = '0' + str(i)
# print(str)
create()
display()

6.perl生成电话号代码

use warnings;
use strict;

create();
display();
sub create {
open FILE, ">file.txt" or die $!; #write
my $str;
my $mid;
for (my $i = 0; $i < 100;$i = $i +1){
if($i<10){
$mid = "0".$i;
}else{
$mid = $i;
}
$str = "1580429" . $mid . "51";
print FILE $str;
print FILE "tn";
}
close FILE;
}
sub display {
open(DATA,"<file.txt") or die "无法打开数据";

while (<DATA>){
print;
}
# my @lines = <DATA>;
# print @lines;
close(DATA);
}

7.go生成电话号代码

package number

/*
@Time : 2021/12/22 17:44
@Author :dengfeng_hu
@File : phone
@Software: GoLand
*/



import (
"bufio"
"fmt"
"io"
"os"
"strconv"
"strings"
"time"
)

const (
filePath = "D:/phone.txt"
fileName = "东莞"
last = "44"
fileSize = 5
)

func getNum(fileName string) int {
var num = 1
for {
if _,err:=os.Stat("D://phoneNumber/" + fileName + strconv.Itoa(num)+".vcf");
os.IsNotExist(err){
return num
}
num++
}
}


func Exe() {
mid := read()
for i:=0;i<len(mid);i=i+5{
var subList []string
if i+fileSize<len(mid){
subList = mid[i:i+fileSize:len(mid)]
}else{
subList = mid[i:len(mid):len(mid)]
}
fmt.Println(subList)
MyTest(subList,fileName,last)
}
}

func MyTest(mid []string,fileName string,last string){
num := getNum(fileName)
file, err := os.OpenFile("D://phoneNumber/" + fileName +strconv.Itoa(num) +".vcf", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
fmt.Println("文件打开失败", err)
return
}
//及时关闭file句柄
defer file.Close()
write := bufio.NewWriter(file)
count:=1
for i := 0;i<len(mid);i++{
for j := 0;j<100;j++{
phoneNumber := strings.ReplaceAll(mid[i],"rn","") + fmt.Sprintf("%02d", j) + last
makeNumber(phoneNumber,write,strconv.Itoa(count))
count++
}
}
makeNumber("15804299051",write,strconv.Itoa(count))
write.Flush()
fmt.Println("文件创建成功,时间:"+time.Now().Format("2006-01-02 15:04:05"))
}


func makeNumber(num string,w *bufio.Writer,index string){
w.WriteString("BEGIN:VCARD" + "rn")
w.WriteString("VERSION:3.0" + "rn")
w.WriteString("FN;CHARSET=UTF-8:1" + "rn")
w.WriteString("N;CHARSET=UTF-8:;;" + "A"+index +";;" + "rn")
w.WriteString("TEL;TYPE=CELL:" + num + "rn")
w.WriteString("END:VCARD" + "rn")

}

func read() []string{
var mid []string
f, err := os.Open(filePath)
if err != nil {
panic(err)
}
defer f.Close()
rd := bufio.NewReader(f)
for {
line, err := rd.ReadString('n') //以'n'为结束符读入一行
if err != nil || io.EOF == err {
break
}
mid = append(mid,line)
}
fmt.Println("mid size:" + strconv.Itoa(len(mid)))
fmt.Println("mid " )
fmt.Println(mid)
return mid
}

8.用工具将txt转换为vcf电话簿

9.不懂的咨询我hdf1294790109(非诚勿扰)

作者:golang中国
golang中国

本文》有 3569 条评论

留下一个回复