> sudo apt install php-[extension name]
e.g.
sudo apt install php-soap
sudo apt install php-xsl
sudo apt install php-intl
extensions will be downloaded to /usr/lib/php/
2019年11月4日 星期一
2019年10月26日 星期六
[JAVA] IBM MQ PUT / GET Example
// need to compile with com.ibm.mq.jar and j2ee.jar
import java.io.*;
import com.ibm.mq.*;
public class MQTest
{
private static String qMngrSrtr = "";
private static String replyQueue = "";
private static String requestQueue = "";
private static String hostName = "";
private static int port = 0;
private static final String channel = "SYSTEM.AITP.SVRCONN";
private static final String FILEPATH = "C:\\Test\\";
MQQueueManager qManager;
public void init(String environment)
{
try
{
qMngrSrtr = "MBKCQ04";
replyQueue = "MFS.MBK.REPL06";
requestQueue = "MBK.MFS.REQS01";
hostName = "10.41.72.69";
port = 1544;
MQEnvironment.hostname = hostName;
MQEnvironment.channel =- channel;
MQEnvironment.port = port;
qManager = new MQQueueManager(qMngrSrtr);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void putAndGetMessage(String path, String filename)
{
try
{
int openOptions2 = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
int openOptions3 = MQC.MQOO_INPUT_SHARED | MQC.MQOO_FAIL_IF_QUIESCING;
MQQueue mqReply = qManager.accessQueue(replyQueue, openOptions3, null, null, null);
MQQueue mqReqest = qManager.accessQueue(requestQueue, openOptions2, null, null, null);
MQMessage putMessage = new MQMessage();
putMessage.format = MQC.MQFMT_STRING;
putMessage.messageFlags = MQC.MQFMT_REQUEST;
putMessage.replyToQueueName = replyQueue;
putMessage.replyToQueueManagerName = qMngrSrtr;
String msg = readFile(path + filename);
putMessage.writeString(msg);
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options += MQC.MQPMO_NEW_MSG_ID | MQC.MQPMO_SYNCPOINT;
mqReqest.put(putMessage, pmo);
qManager.commit();
mqReqest.close();
MQMessage getMessages = new MQMessage();
getMessages.correlationId = putMessage.messageId;
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options += MQC.MQGMO_SYNCPOINT | MQC.MQGMO_WAIT;
gmo.maatchOptions = MQC.MQMO_MATCH_CORREL_ID;
gmo.waitInterval = 30000000;
mqReply.get(getMessages, gmo);
int a = getMessages.getDataLength();
String retrivedMsg = formatXmlString(getMessages.readStringOfCharLength(a));
System.out.println(retrivedMsg);
writeFile(path + filename + ".out", retrivedMsg);
mqReply.close();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
qManager.disconnect();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public static String readFile(String filename)
{
BufferedReader br = null;
try
{
br = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "utf-8"));
StringBuffer sb = new StringBuffer();
String tmp = null;
while(true)
{
tmp = br.readLine();
if(tmp == null)
{
break;
}
sb.append(tmp.trim());
}
return sb.toString();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
br.close();
}
catch(Exception e)
{
}
}
return "";
}
public static void writeFile(String filename, String msg)
{
BufferedWriter br = null;
try
{
br = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "utf-8"));
br.write(msg);
br.newLine();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
br.close();
}
catch(Exception e)
{
}
}
}
public static String formatXmlString(String s)
{
StringBuffer sb = new StringBuffer();
try
{
char[] arr = s.toCharArray();
boolean quoteOpenFlag = false;
int arrowOpenFlag = -1;
boolean dataFlag = false;
boolean escapeFlag = false;
boolean firstArrowFlag = true;
boolean tagOpenFlag = false;
char prevC = '\0';
for(char c:arr)
{
if(c=='<')
{
if(!quoteOpenFlag)
{
if(prevC=='>')
{
dataFlag = true;
}
}
escapeFlag = false;
}
else
{
if(!quoteOpenFlag && prevC=='<' && c!='/')
{
if(firstArrowFlag)
{
firstArrowFlag = false;
}
else
{
sb.append("\n");
}
for(int i=0;i<arrowOpenFlag;i++)
{
sb.append("\t");
}
sb.append("<");
}
if(c=='>')
{
if(!quoteOpenFlag)
{
}
sb.append(c);
escapeFlag = false;
}
else if(c=='"')
{
if(!escapeFlag)
{
quoteOpenFlag = !quoteOpenFlag;
}
sb.append(c);
escapeFlag = false;
}
else if(c=='/')
{
if(!quoteOpenFlag && prevC=='<')
{
arrowOpenFlag--;
if(tagOpenFlag)
{
tagOpenFlag = false;
sb.append(prevC);
sb.append(c);
if(!dataFlag)
{
sb.append("\n");
for(int i = 0;i<arrowOpenFlag;i++)
{
sb.append("\t");
}
}
}
else
{
sb.append("\n");
for(int i = 0;i<arrowOpenFlag;i++)
{
sb.append("\t");
}
sb.append(prevC);
sb.append(c);
}
dataFlag = false;
}
escapeFlag = false;
}
else if(c=='\\')
{
escapeFlag = true;
sb.append(c);
}
else
{
if(!quoteOpenFlag && prevC=='>')
{
dataFlag = true;
}
if(!quoteOpenFlag && prevC=='<')
{
arrowOpenFlag++;
tagOpenFlag = true;
}
sb.append(c);
escapeFlag = false;
}
}
// end if
prevC = c;
}
return sb.toString();
}
catch(Exception e)
{
e.printStackTrace();
}
return "";
}
public static void main(String[] args)
{
MQTest test = new MQTest();
test.init();
test.putAndGetMessage(FILEPATH, "in.txt");
}
}
2019年10月12日 星期六
MAC OS INSTALL php intl extension
Go to https://php-osx.liip.ch
Choose your php version (e.g 7.2)
Copy command
Open terminal
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.2
// this will install php under /usr/local
cd /usr/local/php5-7.2.21-20190811-210031/lib/php/extensions/no-debug-non-zts-20170718
sudo cp intl.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20170718/intl.so
Restart apache web server
Good luck
Choose your php version (e.g 7.2)
Copy command
Open terminal
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.2
// this will install php under /usr/local
cd /usr/local/php5-7.2.21-20190811-210031/lib/php/extensions/no-debug-non-zts-20170718
sudo cp intl.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20170718/intl.so
Restart apache web server
Good luck
2019年9月1日 星期日
Samsung 電池較正 (已測試S2和NOTE 3)
1. 撥號*#0228#
2. 按QUICKSTART (電量可能會大減10-20%,建議電量在80-100%時才試)。
3. 重覆以上步驟2 - 3次,見電量沒有大減便OK。
2. 按QUICKSTART (電量可能會大減10-20%,建議電量在80-100%時才試)。
3. 重覆以上步驟2 - 3次,見電量沒有大減便OK。
2019年5月25日 星期六
[kof98ol] 拳皇98OL噩夢第27章攻略
第27-1關
重點:
前排盧哥和傑斯奇數回合會使出必殺,阿修則每回合使出必殺。建議先打盧哥因他回血能力較低。
重點:
前後各一個無界,實力不高。兩個無界都是每隔一個回合出一次必殺。
注意無界復活後攻擊力會大大提升,建議各格鬥家滿怒,用普攻打死他。當他復活變成石像時則連放必殺和普攻,盡量一口氣打死石化無界。
注意無界復活後攻擊力會大大提升,建議各格鬥家滿怒,用普攻打死他。當他復活變成石像時則連放必殺和普攻,盡量一口氣打死石化無界。
重點:
4關之中最難的一關。4個BOSS每回合都會使出必殺,當中以假ZERO和海德攻擊力最高。有練盧哥的話通關不難,但3星很難。
當海德或假ZERO其中一個死後,另外一位就變成了每隔一個回合才出一次必殺。建議把無名留到最後,他雖然每回合出必殺,但傷害不高。
當海德或假ZERO其中一個死後,另外一位就變成了每隔一個回合才出一次必殺。建議把無名留到最後,他雖然每回合出必殺,但傷害不高。
第27-4關
重點:
只有齋祀一人,每回合都會使出必殺,優先攻擊「攻」格鬥家;如我方沒有「攻」格鬥家則攻擊我方攻擊力最高的那位格鬥家。
我的戰隊中盧哥攻擊力最高。
我的打法是只派出技和防格鬥家,齋祀每回合的必殺都會打在盧哥身上。而盧哥的必殺能回血,加上其他隊友的努力,十多個回合便3星了,呵呵。
2019年4月4日 星期四
[Synology] PHP Mysqli no such file or directory
PHP Mysqli no such file or directory
I am using apache server 2.2 + php 5.6
In my php file,
the line
$conn = new mysqli($servername, $username, $password);
causes error "no such file or directory ".
Here we go
1. Login your DSM
2. Open web station > php settings
3. Choose a php profile > Edit > Select tab "Core" > Search for "socket"
4. Set the socket value of mysqli to "/run/mysqld/mysqld10.sock"
5. Click OK
2019年3月23日 星期六
Taobao Lesson 3
- 開店 4 steps
- 裝修
- 宣傳
- SEO
- 一人一店
- TMALL > 收到邀請才能開店
- 個人店 VS 企業店
- 認証 (回鄉証 / 護照)
- 長期冇生意 > 舖名KEEP多一周但別人無法找到你 > 一周後關店
- 店內貨物類型要一致 > 方便TB為你分類
- 物流安排 > 內地設倉 / 自己帶上去
- 保証金可以拿回嗎? SEARCH "保証金解凍"
- 店評級︰紅心 > 鑽石 > 藍冠 > 皇冠
- 發佈物品有限制 > 有扣分制
- 閑魚市場
- 千牛 > 開店必裝
- 營銷套餐
- 按地區打折
- 裝修
- 宣傳
- SEO
- 一人一店
- TMALL > 收到邀請才能開店
- 個人店 VS 企業店
- 認証 (回鄉証 / 護照)
- 長期冇生意 > 舖名KEEP多一周但別人無法找到你 > 一周後關店
- 店內貨物類型要一致 > 方便TB為你分類
- 物流安排 > 內地設倉 / 自己帶上去
- 保証金可以拿回嗎? SEARCH "保証金解凍"
- 店評級︰紅心 > 鑽石 > 藍冠 > 皇冠
- 發佈物品有限制 > 有扣分制
- 閑魚市場
- 千牛 > 開店必裝
- 營銷套餐
- 按地區打折
2019年3月17日 星期日
Taobao Lesson 2
- install app
- tb app > 右上角 > 選香港區
- 右下角 > 我的淘寶
- search result > filter
- select an item > scroll picture > select spec > final price
- customer review / comment
- 向客服 check inventory
- 加入購物車 vs 立即購買
- click 店舖名稱 > browse all products of that shop
- history > 我的TB > 足跡
- fill in phone nuber, addr
- try submit order
- 集運 > 運費計算
- delete account
取消支付宝账户与淘宝账户绑定的条件(以下条件只要有一项是符合的,则无法解绑):
1、满足以下任意一项,淘宝账户将永久不能与支付宝账户解绑:
1)有发布过商品的行为。
2)有发布的历史库存宝贝。
3)历史上有创建过店铺。
4)淘宝账户永久不能使用,无法进入支付宝绑定设置页面。
5)支付宝绑定设置页面没有解绑或更换账户的按钮。
2、满足以下任意一项,淘宝账户暂时不能解绑,需完成后续操作再进行解绑。
1)提示支付宝账户尚未激活,需补全支付宝账户信息后再操作解绑。
2)提示存在不可用的拍卖押金,需在拍卖押金解冻后再操作解绑。
3)提示有进行的交易,需交易完结或关闭后再操作解绑。
4)提示有签约供应商身份,需先接触供应商身份后再操作解绑。
5)提示有签约支付宝代扣协议,需先解绑协议后再操作解绑。
解绑操作流程:
1、我的淘宝——设置——支付宝绑定设置。
2、点击解绑或更换账户,若绑定状态没有显示 解绑或更换账户,则该淘宝账户不允许和支付宝解绑。
3、若页面提示需要校验,点击 发送验证码,去邮箱中接收验证码,即可解绑成功。若无法通过验证,请点击 获取解决方案 寻求帮助或点此联系淘宝客服协助您解绑。
- TB取消綁定ALIPAY
- buyup, 多寶, 神州
- tb app > 右上角 > 選香港區
- 右下角 > 我的淘寶
- search result > filter
- select an item > scroll picture > select spec > final price
- customer review / comment
- 向客服 check inventory
- 加入購物車 vs 立即購買
- click 店舖名稱 > browse all products of that shop
- history > 我的TB > 足跡
- fill in phone nuber, addr
- try submit order
- 集運 > 運費計算
- delete account
取消支付宝账户与淘宝账户绑定的条件(以下条件只要有一项是符合的,则无法解绑):
1、满足以下任意一项,淘宝账户将永久不能与支付宝账户解绑:
1)有发布过商品的行为。
2)有发布的历史库存宝贝。
3)历史上有创建过店铺。
4)淘宝账户永久不能使用,无法进入支付宝绑定设置页面。
5)支付宝绑定设置页面没有解绑或更换账户的按钮。
2、满足以下任意一项,淘宝账户暂时不能解绑,需完成后续操作再进行解绑。
1)提示支付宝账户尚未激活,需补全支付宝账户信息后再操作解绑。
2)提示存在不可用的拍卖押金,需在拍卖押金解冻后再操作解绑。
3)提示有进行的交易,需交易完结或关闭后再操作解绑。
4)提示有签约供应商身份,需先接触供应商身份后再操作解绑。
5)提示有签约支付宝代扣协议,需先解绑协议后再操作解绑。
解绑操作流程:
1、我的淘宝——设置——支付宝绑定设置。
2、点击解绑或更换账户,若绑定状态没有显示 解绑或更换账户,则该淘宝账户不允许和支付宝解绑。
3、若页面提示需要校验,点击 发送验证码,去邮箱中接收验证码,即可解绑成功。若无法通过验证,请点击 获取解决方案 寻求帮助或点此联系淘宝客服协助您解绑。
- TB取消綁定ALIPAY
- buyup, 多寶, 神州
Taobao Lesson 1
- open account
- 此地區不支援購買
- install app
- 集運限制
- 同店主CHAT可否寄HK
- 液體、粉狀、氣体不可寄
- 雙11
- 38 女王節
- coupon
- 網購EXP
- open alipay account (hk ver, china ver)
- shopping workflow
- 收唔到貨點算
- 退貨安排
- alipay hk add value
- can search product by keyword / picture
- payment method pps, credit card
- does not support octopus since 31 dec 2018
- credit card refund 蝕少少
- 阿里旺旺
- 確認收貨 / 評價
- introduct tmall
- 信用評級 / 差評 / 留言
- 消費者保障服務
- 開店保証金
- 向TB申請退款,從保証金扣
- 7天無條件退貨
- 來源地
- 集運
- 開內地銀行戶口
- 大陸電話號碼 / 一卡兩號
- introduce charge of each payment method
- alipay hk 實名制 > 額度增加
- open taobao account > 同步創建alipay china
- search product > list > sorting by 銷量 / 價格
- introduct alipay express for foreigners
- 金牌賣家 / 每月RESET
- 介紹店舖名旁ICON
- TMALL 店 > 描述、服務、物流
- 開店
- 購物車 > 120 slots > if price changes > user receives notification
- trace 物流
- 收藏夾 > does trace price change
- 四方集運唔掂
- 此地區不支援購買
- install app
- 集運限制
- 同店主CHAT可否寄HK
- 液體、粉狀、氣体不可寄
- 雙11
- 38 女王節
- coupon
- 網購EXP
- open alipay account (hk ver, china ver)
- shopping workflow
- 收唔到貨點算
- 退貨安排
- alipay hk add value
- can search product by keyword / picture
- payment method pps, credit card
- does not support octopus since 31 dec 2018
- credit card refund 蝕少少
- 阿里旺旺
- 確認收貨 / 評價
- introduct tmall
- 信用評級 / 差評 / 留言
- 消費者保障服務
- 開店保証金
- 向TB申請退款,從保証金扣
- 7天無條件退貨
- 來源地
- 集運
- 開內地銀行戶口
- 大陸電話號碼 / 一卡兩號
- introduce charge of each payment method
- alipay hk 實名制 > 額度增加
- open taobao account > 同步創建alipay china
- search product > list > sorting by 銷量 / 價格
- introduct alipay express for foreigners
- 金牌賣家 / 每月RESET
- 介紹店舖名旁ICON
- TMALL 店 > 描述、服務、物流
- 開店
- 購物車 > 120 slots > if price changes > user receives notification
- trace 物流
- 收藏夾 > does trace price change
- 四方集運唔掂
2019年3月11日 星期一
CURL Common Options
-#, --progress-bar
Make curl display a simple progress bar instead of the more informational standard meter.-b, --cookie <name=data>
Supply cookie with request. If no =
, then specifies the cookie file to use (see -c
).-c, --cookie-jar <file name>
File to save response cookies to.-d, --data <data>
Send specified data in POST request. Details provided below.-f, --fail
Fail silently (don't output HTML error form if returned).-F, --form <name=content>
Submit form data.-H, --header <header>
Headers to supply with request.-i, --include
Include HTTP headers in the output.-I, --head
Fetch headers only.-k, --insecure
Allow insecure connections to succeed.-L, --location
Follow redirects.-o, --output <file>
Write output to . Can use --create-dirs
in conjunction with this to create any directories specified in the -o
path.-O, --remote-name
Write output to file named like the remote file (only writes to current directory).-s, --silent
Silent (quiet) mode. Use with -S
to force it to show errors.-v, --verbose
Provide more information (useful for debugging).-w, --write-out <format>
Make curl display information on stdout after a completed transfer. See man page for more details on available variables. Convenient way to force curl to append a newline to output: -w "\n"
(can add to ~/.curlrc
).-X, --request
The request method to use.2019年2月28日 星期四
[JAVA] RESTful Webservice using eclipse and TomEE 1.75
1. Download TomEE that supports JAX-RS (In this example, I choose TomEE jaxrs 1.75)
Comparison matrix: http://tomee.apache.org/comparison.html
Download: http://tomee.apache.org/download-ng.html
2. Download Eclipse: https://www.eclipse.org/downloads/
3. Unzip TomEE package
4. Open Eclipse
> Create New Server
> Set name = TomEE 1.75
> Choose Apache Tomcat 7.0
> Browse
> Select the TomEE path (e.g. D:\Documents\java\apache-tomee-jaxrs-1.7.5)
We choose Apache Tomcat 7.0 because this version of TomEE is created base on it.
5. Create a "Dynamic Web Project"
> Project name = HelloRest
> Select Dynamic Web Module 3.0
> Target RunTime = TomEE 1.75
> Finish
6. Add a java class called "HelloService.java"
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
@Path("/")
public class HelloService {
@Path("/")
@GET
@Produces(MediaType.TEXT_HTML)
public String index() {
return "index";
}
@Path("/hello/{name}")
@GET
@Produces(MediaType.TEXT_HTML)
public String getContact(
@PathParam("name") String name) {
return "My name is "+name+".";
}
}
7. Right click project "HelloRest" > Run As > Run On Server
http://localhost:8080/HelloRest/
(Display "index")
http://localhost:8080/HelloRest/hello/Peter
(Display "My name is Peter.")
Comparison matrix: http://tomee.apache.org/comparison.html
Download: http://tomee.apache.org/download-ng.html
2. Download Eclipse: https://www.eclipse.org/downloads/
3. Unzip TomEE package
4. Open Eclipse
> Create New Server
> Set name = TomEE 1.75
> Choose Apache Tomcat 7.0
> Browse
> Select the TomEE path (e.g. D:\Documents\java\apache-tomee-jaxrs-1.7.5)
We choose Apache Tomcat 7.0 because this version of TomEE is created base on it.
5. Create a "Dynamic Web Project"
> Project name = HelloRest
> Select Dynamic Web Module 3.0
> Target RunTime = TomEE 1.75
> Finish
6. Add a java class called "HelloService.java"
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
@Path("/")
public class HelloService {
@Path("/")
@GET
@Produces(MediaType.TEXT_HTML)
public String index() {
return "index";
}
@Path("/hello/{name}")
@GET
@Produces(MediaType.TEXT_HTML)
public String getContact(
@PathParam("name") String name) {
return "My name is "+name+".";
}
}
7. Right click project "HelloRest" > Run As > Run On Server
http://localhost:8080/HelloRest/
(Display "index")
http://localhost:8080/HelloRest/hello/Peter
(Display "My name is Peter.")
Good luck
2019年2月14日 星期四
[WebLogic] Using t3s protocal
xlclient.cmd
rem @echo off
cls
setlocal
call classpath
REM SET DEBUG_OPTS=-classic -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5001 -DXL.RedirectSysOutErrToFile=TRUE -DXL.SysOutErrLogFile=.\logs\Client.System.Out.Err.log
REM Make sure to remove java.naming.provider.url and read it from the configuration
REM once the JNDI Profiles are implemented.
REM make sure you are using j2sdk1.4.2_05
SET TRUSTSTORE_LOCATION=D:\Documents\workspaces\github1\MyJava\MyJava\src\com\ldap\ldapcert\cert.jks
java %DEBUG_OPTS% ^
-DXL.ExtendedErrorOptions=TRUE -DXL.HomeDir=C:\oracle\xlclient ^
-Djava.security.policy=config\xl.policy ^
-Dlog4j.configuration=config\log.properties ^
-DAPPSERVER_TYPE=wls ^
-Dweblogic.security.SSL.trustedCAKeyStore=%TRUSTSTORE_LOCATION% ^
-Dweblogic.security.SSL.ignoreHostnameVerification=true ^
-Dweblogic.security.SSL.verbose=true ^
-Dweblogic.security.SSL.enable.renegotiation=true ^
-Dsun.security.ssl.allowUnsafeRenegotiation=true ^
-DUseSunHttpHandler=true ^
-Dweblogic.security.SSL.nojce=true ^
-Dweblogic.ssl.JSSEEnabled=true ^
-Dweblogic.security.SSL.enableJSSE=true ^
-Dssl.SocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl ^
-Dssl.ServerSocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl ^
-Djava.security.manager -Djava.security.auth.login.config=config\authwl.conf ^
com.thortech.xl.client.base.tcAppWindow -server server
endlocal
2019年1月17日 星期四
C# datetime.now.tostring("yyyy/MM") 顯示為yyyy-MM的解決方法
DateTime.Now.ToString("yyyy/MM")
Output
2019-01 which is not expected, what I want is 2019/01
Use single quote to solve this problem:
DateTime.Now.ToString("yyyy'/'MM")
Output
2019/01
Yeah!!!!
Output
2019-01 which is not expected, what I want is 2019/01
Use single quote to solve this problem:
DateTime.Now.ToString("yyyy'/'MM")
Output
2019/01
Yeah!!!!
2019年1月14日 星期一
Solving network problems 2
LAN connector (LAN 頭)
LAN 夾
LAN Tester
https://detail.tmall.com/item.htm?spm=a230r.1.14.13.ac6e73d8QCVwE2&id=20091962854&cm_id=140105335569ed55e27b&abbucket=19
Android network tools
https://play.google.com/store/apps/details?id=com.eakteam.networkmanager&hl=en_US
MAC Address
MAC地址(英语:Media Access Control Address),直译为媒體存取控制位址,也稱為局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用來确认網路設備位置的位址。在OSI模型中,第三層網路層負責IP地址,第二層資料鏈結層則負責MAC位址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
ff:ff:ff:ff:ff:ff则作为廣播位址。
01:xx:xx:xx:xx:xx是多播地址,01:00:5e:xx:xx:xx是IPv4多播地址。
Win 10 Change MAC Address > control panel > device manager > advance > network address > default is "No value"
Same hostname > 網路上有重複的名稱
What is my ip?
https://whatismyipaddress.com/
什麼是 DNS?
https://hk.godaddy.com/help/dns-665
網域名稱系統(英文:Domain Name System,縮寫:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53[1]。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“XXX.香港”、“XXX.台湾”的域名可以在地址栏直接输入并访问,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入,难以在国际推广等。
https://香港大學.香港/
Refresh network status
ipconfig /renew
disable > enable network interface card
router setting page
802.11ac n/g/b
IEEE 802.11a
主條目:IEEE 802.11a
IEEE 802.11a是802.11原始標準的一個修訂標準,於1999年獲得批准。802.11a標準採用了與原始標準相同的核心協定,工作頻率為5GHz,使用52個正交頻分多工副載波,最大原始資料傳輸率為54Mb/s,這達到了現實網路中等輸送量(20Mb/s)的要求。
由於2.4G頻段日益擁擠,使用5G頻段是802.11a的一個重要的改進。但是,也帶來了問題。傳輸距離上不及802.11b/g;理論上5G信號也更容易被牆阻擋吸收,所以802.11a的覆蓋不及801.11b。802.11a同樣會被干擾,但由於附近干擾信號不多,所以802.11a通常輸送量比較好。
IEEE 802.11b
主條目:IEEE 802.11b
IEEE 802.11b是無線局域網的一個標準。其載波的頻率為2.4GHz,可提供1、2、5.5及11Mbit/s的多重傳送速度[1]。它有時也被錯誤地被標為Wi-Fi。實際上Wi-Fi是Wi-Fi聯盟的一個商標,該商標僅保障使用該商標的商品互相之間可以合作,與標準本身實際上沒有關係。[來源請求]在2.4-GHz的ISM頻段共有11個頻寬為22MHz的頻道可供使用,它是11個相互重疊的頻段。IEEE
802.11b的後繼標準是IEEE 802.11g。
IEEE 802.11g
主條目:IEEE 802.11g
IEEE 802.11g在2003年7月被通過。其載波的頻率為2.4GHz(跟802.11b相同),共14個頻段,原始傳送速度為54Mbit/s,淨傳送速率約為24.7Mbit/s(跟802.11a相同)。802.11g的設備向下與802.11b相容。
其後有些無線路由器廠商因應市場需要而在IEEE 802.11g的標準上另行開發新標準,並將理論傳送速率提升至108Mbit/s或125Mbit/s。
IEEE 802.11n
主條目:IEEE 802.11n
IEEE 802.11n,是由IEEE在2004年1月[來源請求]組成的一個新的工作組在802.11-2007的基礎上發展出來的標準,於2009年9月正式批准。該標準增加了對MIMO的支援,允許40MHz的無線頻寬,最大傳送速率理論值為600Mbit/s。同時,通過使用Alamouti提出的空時分組碼,該標準擴大了資料傳輸範圍。
IEEE 802.11ac
主條目:IEEE 802.11ac
IEEE 802.11ac是一個正在發展中的802.11無線計算機網路通信標準,它透過6GHz頻帶(也就是一般所說的5GHz頻帶)進行無線區域網(WLAN)通信。理論上,它能夠提供最少每秒1
Gigabit頻寬進行多站式無線區域網(WLAN)通訊,或是最少每秒500 megabits(500
Mbit/s)的單一連線傳輸頻寬。
它採用並擴展了源自802.11n的空中介面(air
interface)概念,包括:更寬的RF頻寬(提升至160 MHz),更多的MIMO空間串流(spatial
streams,增加到8),MU-MIMO,以及高密度的解調變(modulation,最高可達到256
QAM)。它是IEEE 802.11n的繼任者。
Wireless channel
https://zh.wikipedia.org/wiki/WLAN%E4%BF%A1%E9%81%93%E5%88%97%E8%A1%A8
頻道列表[编辑]
很多国家都有法律规管这些頻道的使用,例如在一定频率范围内的最大功率电平等。网络运营商应咨询当地主管部门,因为这些规定可能会过时,世界上绝大多数国家都允许不需要申请许可证使用第1頻道到第13頻道:
頻道 | 頻率 (MHz) | 中國[6] | 北美地区[6] | 歐洲 [6][7][8] | 日本[6] | 澳洲[9] | 委內瑞拉 | 以色列 | 台灣[10] |
---|---|---|---|---|---|---|---|---|---|
1 | 2412 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
2 | 2417 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
3 | 2422 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
4 | 2427 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
5 | 2432 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
6 | 2437 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
7 | 2442 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
8 | 2447 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
9 | 2452 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
10 | 2457 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
11 | 2462 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 |
12 | 2467 | 是 | 否A | 是 | 是 | 是 | 是 | 否 | 是 |
13 | 2472 | 是 | 否A | 是 | 是 | 是 | 是 | 否 | 是 |
14 | 2484 | 否 | 否A | 否 | 只能使用 802.11bB | 否 | 否 | 否 | 否 |
Network adapter setting > no default gateway:
cannot connect outside network
but can ping the router
Network adapter setting > no DNS server
If we set the DNS manually, the value usually equals to the router IP because router has DNS inside.
If DNS is not set, can ping a host by ip but cannot ping by hostname
Win command nslookup
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/nslookup-set-type
> nslookup
> set type=any
> server dns.hinet.net
> www.shichimiya.co.jp
未經授權的回答
Non-authoritative answer
http://site.whataiwant.com/?action-viewnews-itemid-128
https://blog.miniasp.com/post/2010/12/27/DNS-query-process-explained-using-nslookup.aspx
網絡設定檔 > 公用 > others cannot find / ping you
網絡設定檔 > 私人 > others can find / ping you
Desktop > Right click network icon on the bottom right corner > Network & Internet > Status > 變更連線內容 > Set 私人 / 公用
Windows XP > ICMP setting > Enable other computers ping you
網路連線 > Your connection > Properties > Advance > Settings > General > Enable firewall > Advance > Setting > ICMP > 允許連入回應要求 ECHO
Windows 10 > Windows Defender Firewall > Advance >
Right click a folder > properties > if tab "共用" disappeared > check "服務" > check if "Server" is turned off
Cannot connect to share folder of Windows 10 from Windows XP
Solution: You need to enable SMB1 protocol in Windows 10
https://winaero.com/blog/enable-smb1-sharig-protocol-windows-10/
SMBv1 is not installed by default in Windows 10 Fall Creators Update and Windows Server, version 1709 and later versions
https://support.microsoft.com/en-nz/help/4034314/smbv1-is-not-installed-by-default-in-windows
如果您嘗試連線到只支援 SMBv1 的裝置,或者這些裝置嘗試與您連線,您可能會收到下列其中一個錯誤訊息:
You can't connect to the file share because it's not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack.
Your system requires SMB2 or higher. For more info on resolving this issue, see: https://go.microsoft.com/fwlink/?linkid=852747 (您無法連線至檔案共用,因為不安全。此共用需要過時的 SMB1 通訊協定,此通訊協定不安全且可能使您的系統暴露在攻擊風險下。您的系統需要 SMB2 或更新版本。如需有關解決此問題的詳細資訊,請參閱:https://go.microsoft.com/fwlink/?linkid=852747)
Your system requires SMB2 or higher. For more info on resolving this issue, see: https://go.microsoft.com/fwlink/?linkid=852747 (您無法連線至檔案共用,因為不安全。此共用需要過時的 SMB1 通訊協定,此通訊協定不安全且可能使您的系統暴露在攻擊風險下。您的系統需要 SMB2 或更新版本。如需有關解決此問題的詳細資訊,請參閱:https://go.microsoft.com/fwlink/?linkid=852747)
指定的網路名稱無法使用。
未指定的錯誤 0x80004005
系統錯誤 64
指定的伺服器無法執行要求的作業。
錯誤 58
訂閱:
文章 (Atom)